问题标签 [jain-sip]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1601 浏览

java - JAIN-SIP RINGING 响应永远不会被发送

我正在创建一个实现 SipListener 接口的类,以接收来自 JAIN-SIP 堆栈的事件(对于 Android 设备)。为了测试它,我将 2 个设备连接到一个 OpenSIP,并尝试调用另一个。我使用 3rd 方客户端没有问题。

除了一个奇怪的问题外,我的基本实现似乎一切都很好。当我在 processRequest 中收到 INVITE 请求时,我创建了一个 RINGING 响应,然后是一个 OK 响应。问题是(根据 tcpdump)RINGING 响应永远不会到达服务器。收到 INVITE 数据包后,设备会发送一个 TRYING 数据包(我的代码中没有这样做,所以它必须是 JAIN-SIP 的一部分),然后是一个 OK 数据包。我遵循了各种示例,它们似乎都暗示了以下几点:

作为参考,INVITE 标头如下所示:

64.xxx 是 OpenSIPs IP,10.xx10 是 UAC 的 IP。

我是否缺少标头或以其他方式错误地设置了 RINGING 数据包?任何帮助是极大的赞赏!

0 投票
2 回答
5448 浏览

sip - SIP 订阅收到 486 BUSY HERE

我正在尝试订阅观察者列表,并且服务器经常以 486 BUSY HERE 响应。但是,RFC 将 486 描述为对 INVITE 的可能响应,这对于此响应更有意义。
在其他时候,服务器会正​​确响应 - 一个 200 OK,然后是一个 NOTIFY 请求。

我正在使用 ALU IMS 核心。

有没有人看到这个问题?

我的订阅请求:

0 投票
1 回答
2080 浏览

sip - 使用 NIST JAIN SIP API 发送 SIP 请求时出错

我正在尝试使用 NIST 的 JAIN SIP API 实现发送 REGISTER SIP 请求。

首先,我给出 SipController 类的数据成员的声明:

这是发送请求的代码:

我使用语句调用此方法

数据成员端口的值为 5060。

我要做的是向我的计算机上运行的另一个应用程序发送一个请求,该应用程序正在侦听端口 5061。这个应用程序是我从中发送请求的同一程序的另一个实例。

当我调用 SipProvider 类的 sendRequest() 方法时,我得到一个 javax.sip.SipException 异常,并显示消息“发送请求时发生 IO 异常”。此异常包含 java.net.BindException 作为其原因,并带有消息“无法分配请求的地址:数据报发送失败”。

这是堆栈跟踪:

关于我做错了什么的任何想法?

0 投票
3 回答
18473 浏览

sip - SIP 代理认证失败

我正在开发一个连接到 Asterisk 服务器并尝试拨打电话的 SIP 用户代理应用程序。我正在使用 JAIN SIP API 的 NIST 实现。

当应用程序注册自己时,401(未授权)响应会使用 WWW-Authenticate 标头对其进行质询。应用程序将 Authorization 标头插入到下一个 REGISTER 请求中。这次 Asterisk 返回一个 200 (OK) 响应——注册成功。

当应用程序发送 INVITE 请求时,Asterisk 会以 407(需要代理身份验证)响应进行响应。这次响应包含一个 Proxy-Authenticate 标头。我的应用程序再次发送了一个 INVITE,但这次带有 Authorization 标头,Asterisk 使用相同的 407(需要代理身份验证)响应进行响应。

以下是传输的 SIP 消息('>>' 表示传出消息;'<<' 表示传入消息):

>>

<<

<<

>>

<<

<<

>>

>>

<<

>>

>>

<<

在这两种情况下,Authorization 标头的构造方式完全相同(执行相同的代码)。我将请求的请求 URI 用于“digestURI”。我尝试使用 Proxy-Authorization 标头而不是 Authorization 标头,但结果是一样的。

谁能看到我做错了什么?提前致谢。

0 投票
1 回答
3919 浏览

sip - SIP 代理认证失败

我正在开发一个连接到 Asterisk 服务器并尝试拨打电话的 SIP 用户代理应用程序。我正在使用 JAIN SIP API 的 NIST 实现。

应用程序首先成功注册自己。然后,当应用程序向 X-Lite SIP 软电话发送 INVITE 请求时,Asterisk 会以 407(需要代理身份验证)响应进行响应。响应包含一个 Proxy-Authenticate 标头。我的应用程序再次发送 INVITE,但这次使用 Proxy-Authorization 标头,Asterisk 以 488 响应(此处不可接受)。

下面是 SIP 会话('>>' 表示传出消息;'<<' 表示传入消息):

>> REGISTER sip:10.0.84.30:5060 SIP/2.0
Call-ID: 7f2d15884ab375fc7b5d32fdd28426d5@10.0.85.3
CSeq: 1 REGISTER
From: <sip:301@asterisk>;tag=0vmZig
To: <sip:301@asterisk>
Via: SIP/2.0/UDP 10.0.85.3:5060;branch=z9hG4bK493cd4b63090dc9a8027931937b737c9353835 Max-Forwards: 70
Contact: <sip:10.0.85.3:5060>
Expires: 300
Content-Length: 0

<< SIP/2.0 100 Trying
Via: SIP/2.0/UDP 10.0.85.3:5060;branch=z9hG4bK493cd4b63090dc9a8027931937b737c9353835;received=10.0.85.3
From: <sip:301@asterisk>;tag=0vmZig
To: <sip:301@asterisk>
Call-ID: 7f2d15884ab375fc7b5d32fdd28426d5@10.0.85.3
CSeq: 1 REGISTER
User-Agent: Asterisk PBX (switchvox)
Allow: INVITE,ACK,CANCEL,OPTIONS,BYE,REFER,SUBSCRIBE,NOTIFY
Contact: <sip:301@10.0.84.30>
Content-Length: 0

<< SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 10.0.85.3:5060;branch=z9hG4bK493cd4b63090dc9a8027931937b737c9353835;received=10.0.85.3
From: <sip:301@asterisk>;tag=0vmZig
To: <sip:301@asterisk>;tag=as4d134cc6
Call-ID: 7f2d15884ab375fc7b5d32fdd28426d5@10.0.85.3
CSeq: 1 REGISTER
User-Agent: Asterisk PBX (switchvox)
Allow: INVITE,ACK,CANCEL,OPTIONS,BYE,REFER,SUBSCRIBE,NOTIFY
Contact: <sip:301@10.0.84.30>
WWW-Authenticate: Digest realm="asterisk",nonce="27ca4a51"
Content-Length:0

>> REGISTER sip:10.0.84.30:5060 SIP/2.0
CSeq: 2 REGISTER
From: <sip:301@asterisk>;tag=0vmZig
To: <sip:301@asterisk>
Via: SIP/2.0/UDP 10.0.85.3:5060;branch=z9hG4bKe339b4ed9edc5d75379673b6dec7fc42353835 Max-Forwards: 70
Contact: <sip:10.0.85.3:5060>
Expires: 300
Authorization: Digest username="301",realm="asterisk",nonce="27ca4a51",response="cfdcdff7ddee99d10c3099e88ffb73af",algorithm=MD5,uri="sip:10.0.84.30:5060",nc=00000001
Call-ID: 7f2d15884ab375fc7b5d32fdd28426d5@10.0.85.3
Content-Length: 0

<< SIP/2.0 100 Trying
Via: SIP/2.0/UDP 10.0.85.3:5060;branch=z9hG4bKe339b4ed9edc5d75379673b6dec7fc42353835;received=10.0.85.3
From: <sip:301@asterisk>;tag=0vmZig
To: <sip:301@asterisk>
Call-ID: 7f2d15884ab375fc7b5d32fdd28426d5@10.0.85.3
CSeq: 2 REGISTER
User-Agent: Asterisk PBX (switchvox)
Allow: INVITE,ACK,CANCEL,OPTIONS,BYE,REFER,SUBSCRIBE,NOTIFY
Contact: <sip:301@10.0.84.30>
Content-Length: 0

<< SIP/2.0 200 OK
Via: SIP/2.0/UDP 10.0.85.3:5060;branch=z9hG4bKe339b4ed9edc5d75379673b6dec7fc42353835;received=10.0.85.3
From: <sip:301@asterisk>;tag=0vmZig
To: <sip:301@asterisk>;tag=as4d134cc6
Call-ID: 7f2d15884ab375fc7b5d32fdd28426d5@10.0.85.3
CSeq: 2 REGISTER
User-Agent: Asterisk PBX (switchvox)
Allow: INVITE,ACK,CANCEL,OPTIONS,BYE,REFER,SUBSCRIBE,NOTIFY
Expires: 300
Contact: <sip:10.0.85.3:5060>;expires=300
Date: Tue, 03 May 2011 09:37:45 GMT
Content-Length: 0

>> INVITE sip:302@asterisk SIP/2.0
Call-ID: 003d85b0d0868f6f2a2d8c324d7f1d54@10.0.85.3
CSeq: 3 INVITE
From: <sip:301@asterisk>;tag=sJSeLA
To: <sip:302@asterisk>
Via: SIP/2.0/UDP 10.0.85.3:5060;branch=z9hG4bK6704cd9554c0c8e5bc94bc42b606147a353835 Max-Forwards: 70
Contact: <sip:10.0.85.3:5060>
Route: <sip:10.0.84.30:5060;lr>
Content-Type: application/sdp
Content-Length: 106

v=0
o=- 3513403599 3513403599 IN IP4 10.0.85.3
s=-
c=IN IP4 10.0.85.3
t=0 0
m=audio 40000 RTP/AVP 3

<< SIP/2.0 407 Proxy Authentication Required
Via: SIP/2.0/UDP 10.0.85.3:5060;branch=z9hG4bK6704cd9554c0c8e5bc94bc42b606147a353835;received=10.0.85.3
From: <sip:301@asterisk>;tag=sJSeLA
To: <sip:302@asterisk>;tag=as7358e1b8
Call-ID: 003d85b0d0868f6f2a2d8c324d7f1d54@10.0.85.3
CSeq: 3 INVITE
User-Agent: Asterisk PBX (switchvox)
Allow: INVITE,ACK,CANCEL,OPTIONS,BYE,REFER,SUBSCRIBE,NOTIFY
Contact: <sip:302@10.0.84.30>
Proxy-Authenticate: Digest realm="asterisk",nonce="55deefb6"
Content-Length: 0

>> INVITE sip:302@asterisk SIP/2.0
CSeq: 4 INVITE
From: <sip:301@asterisk>;tag=sJSeLA
To: <sip:302@asterisk>
Via: SIP/2.0/UDP 10.0.85.3:5060;branch=z9hG4bK6e3501c0973664fcd7a17affddd23572353835 Max-Forwards: 70
Contact: <sip:10.0.85.3:5060>
Route: <sip:10.0.84.30:5060;lr>
Content-Type: application/sdp
Proxy-Authorization: Digest username="301",realm="asterisk",nonce="55deefb6",response="47e2c7abe625e4a183726e29c035d7e0",algorithm=MD5,uri="sip:302@asterisk",nc=00000001
Call-ID: 003d85b0d0868f6f2a2d8c324d7f1d54@10.0.85.3
Content-Length: 106

v=0
o=- 3513403599 3513403599 IN IP4 10.0.85.3
s=-
c=IN IP4 10.0.85.3
t=0 0
m=audio 40000 RTP/AVP 3

<< SIP/2.0 488 Not acceptable here
Via: SIP/2.0/UDP 10.0.85.3:5060;branch=z9hG4bK6e3501c0973664fcd7a17affddd23572353835;received=10.0.85.3
From: <sip:301@asterisk>;tag=sJSeLA
To: <sip:302@asterisk>;tag=as7358e1b8
Call-ID: 003d85b0d0868f6f2a2d8c324d7f1d54@10.0.85.3
CSeq: 4 INVITE
User-Agent: Asterisk PBX (switchvox)
Allow: INVITE,ACK,CANCEL,OPTIONS,BYE,REFER,SUBSCRIBE,NOTIFY
Contact: <sip:302@10.0.84.30>
Content-Length: 0

我在这里做错了什么,导致 488 响应?

0 投票
1 回答
1431 浏览

android - jain-sip 寄存器收到错误消息“预期通过标头 ID”

我正在使用 Jain sip 在 android 上开发 SIP 客户端。我想用 jain-sip-presence-proxy 注册它。

我的代码:

错误信息是:

你能帮助我吗?

0 投票
5 回答
2730 浏览

voip - sip堆栈比较

我想比较 opal、pjsip、opensips 等开源 sip 堆栈的架构差异、最大并发调用、内存占用和其他边界值。

任何指针表示赞赏。

0 投票
2 回答
3246 浏览

java - Where to find documentation on jain-sip

The title is as clear as it gets. I'm searching for the jain-sip documentation but I'm unable to find it. There is a a link to documentation at the jsip.java.net website but I get send to the hudson builder.

0 投票
2 回答
2665 浏览

java - Jain-sip 自动发送 sip 消息

我编写了一个可以与 PBX 通信的软电话(由 SIPp 模拟)。为此,我使用 java 的 jain-sip 框架。我的问题是,jain-sip 会自动发送 sip 消息。例如,在收到 RE-INVITE 消息后,我的程序会发回 OK 消息,但 jain-sip 会自动发回 TRYING 消息。为什么???

Jain-sip 还会自动发送一些 OK 消息。请参阅下面的呼叫流程(PBX 正在向我的软件电话应用程序发送邀请消息)

  • 邀请 -->
  • <-- 尝试
  • <-- 铃声
  • <-- OK/SDP(端口号 2000)
  • 确认 -->
  • 在端口 2000 上发送 RTP

  • 重新邀请 -->

  • <-- 尝试
  • <-- OK/SDP(端口号 2002)
  • 确认 -->
  • 在端口 2002 上发送 RTP
  • <-- OK/SDP (port number 2000) // jain-sip 自动发送此消息!!!
  • 确认 -->
  • 在端口 2000 上发送 RTP // 现在 rtp 数据转到错误的端口
  • <-- OK/SDP (port number 2000) // 再次 jain-sip 自动发送 ok 消息
  • 确认 -->
  • 在端口 2000 上发送 RTP // rtp 数据转到错误的端口
  • 再见-->
  • <-- 好的

为什么 jain-sip 会自动发送消息?我做错了什么,或者是否可以禁用自动发送 sip 消息?

0 投票
1 回答
110 浏览

sip - SIP 中对 UE 的最大挑战数?

Registrar / Proxy 可以使用 401/407 质询 UE 多少次?如果这个 UE 是一个持续发送随机挑战响应的恶意 UE,代理/注册器如何停止接受更多请求,从而保护自己免受任何拒绝服务攻击?