- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
public void call(Response response) {
try {
cseq++;
current_process = cseq + " INVITE";
ArrayList viaHeaders = new ArrayList();
ViaHeader viaHeader = this.headerFactory.createViaHeader(this.ip,
5060, "udp", null);
viaHeaders.add(viaHeader);
// The "Max-Forwards" header.
MaxForwardsHeader maxForwardsHeader = this.headerFactory
.createMaxForwardsHeader(70);
// The "Call-Id" header.
CallIdHeader callIdHeader = this.sipProvider.getNewCallId();
// The "CSeq" header.
CSeqHeader cSeqHeader = this.headerFactory.createCSeqHeader(cseq,
"INVITE");
Address fromAddress = addressFactory.createAddress("sip:"
+ username + '@' + server);
Address toAddress = addressFactory.createAddress("sip:"+this.toPrefix+this.toNumber+'@'+this.toUri);
FromHeader fromHeader = this.headerFactory.createFromHeader(
fromAddress, String.valueOf(this.tag));
// The "To" header.
ToHeader toHeader = this.headerFactory.createToHeader(toAddress,
null);
ContentLengthHeader contentLength = this.headerFactory.createContentLengthHeader(300);
ContentTypeHeader contentType = this.headerFactory.createContentTypeHeader("application", "sdp");
String sdpData = "v=0\n" +
"o=user1 392867480 292042336 IN IP4 192.168.10.31\n" +
"s=-\n" +
"c=IN IP4 192.168.10.31\n" +
"t=0 0\n" +
"m=audio 8000 RTP/AVP 0 8 101\n" +
"a=rtpmap:0 PCMU/8000\n" +
"a=rtpmap:8 PCMA/8000\n" +
"a=rtpmap:101 telephone-event/8000\n" +
"a=sendrecv";
byte[] contents = sdpData.getBytes();
// this.contactHeader = this.headerFactory
// .createContactHeader(contactAddress);
request = this.messageFactory.createRequest("sip:"+this.toPrefix+this.toNumber+'@'
+ this.toUri + " SIP/2.0\r\n\r\n");
request.addHeader(viaHeader);
request.addHeader(maxForwardsHeader);
request.addHeader(toHeader);
request.addHeader(fromHeader);
request.addHeader(callIdHeader);
request.addHeader(cSeqHeader);
request.addHeader(contactHeader);
request.addHeader(contentLength);
request.addHeader(contentType);
if (response != null) {
retry = true;
System.out.println("DEBUG: Response: "+response);
}
inviteTid = sipProvider.getNewClientTransaction(request);
// send the request out.
inviteTid.sendRequest();
this.dialog = inviteTid.getDialog();
// Send the request statelessly through the SIP provider.
// this.sipProvider.sendRequest(request);
// Display the message in the text area.
logger.debug("Request sent:\n" + request.toString() + "\n\n");
} catch (Exception e) {
// If an error occurred, display the error.
e.printStackTrace();
logger.debug("Request sent failed: " + e.getMessage() + "\n");
}
}
这是过程响应:
@Override
public void processResponse(ResponseEvent responseEvent) {
System.out.println(responseEvent.getResponse());
int statusCode = responseEvent.getResponse().getStatusCode();
if (statusCode > 400 && statusCode < 410) {
if(statusCode == 401 && current_process.contains("REGISTER")) {
register(responseEvent.getResponse());
}
else if(statusCode == 401 && current_process.contains("INVITE")) {
System.out.println("Invite 401");
}
else if(statusCode == 200) {
System.out.println("Registered");
call(null);
}
else {
System.out.println("Other code: "+ statusCode);
}
}
我已经成功注册到服务器,但是当它开始INVITE请求时,没有任何响应返回。
下面是我得到的响应(包括 REGISTER 响应),最后你会看到我发出的 INVITE 请求没有返回任何响应。
DEBUG - Request sent:
REGISTER sip:sip.dialnow.com SIP/2.0
Via: SIP/2.0/UDP 192.168.10.31:5060;branch=z9hG4bK-343133-c591d8f797a179ed25a2114311df1854
Max-Forwards: 70
To: <sip:Frax01@sip.dialnow.com>
From: <sip:Frax01@sip.dialnow.com>;tag=706572717
Call-ID: 6e49a1b2631c4b107199a8b7d9c5ee52@192.168.10.31
CSeq: 1 REGISTER
Contact: <sip:Frax01@192.168.10.31:5060;transport=UDP>
Expires: 120
Content-Length: 0
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 192.168.10.31:5060;branch=z9hG4bK-343133-c591d8f797a179ed25a2114311df1854
From: <sip:Frax01@sip.dialnow.com>;tag=706572717
To: <sip:Frax01@sip.dialnow.com>
Contact: <sip:77.72.169.129:5060>
Call-ID: 6e49a1b2631c4b107199a8b7d9c5ee52@192.168.10.31
CSeq: 1 REGISTER
Server: (Very nice Sip Registrar/Proxy Server)
Allow: ACK,BYE,CANCEL,INVITE,REGISTER,OPTIONS,INFO,MESSAGE
WWW-Authenticate: Digest realm="sip.dialnow.com",nonce="2849852658",algorithm=MD5
Content-Length: 0
12d2ad0d764601c0573be88a3d94a2d8
8b3a241c08615fba24fb161a2a344cc9
40810f9cf3d19138dc0875dea15e3970
DEBUG - Request sent:
REGISTER sip:sip.dialnow.com SIP/2.0
Via: SIP/2.0/UDP 192.168.10.31:5060;branch=z9hG4bK-343133-3ccb8a78b8614638665f0af2a998a686
Max-Forwards: 70
To: <sip:Frax01@sip.dialnow.com>
From: <sip:Frax01@sip.dialnow.com>;tag=706572717
Call-ID: 50baef7c3a407e50d4d539a1e35cff41@192.168.10.31
CSeq: 2 REGISTER
Contact: <sip:Frax01@192.168.10.31:5060;transport=UDP>
Expires: 120
Authorization: Digest realm="sip.dialnow.com",nonce="2849852658",username="Frax01",uri="sip:sip.dialnow.com",algorithm=MD5,response="40810f9cf3d19138dc0875dea15e3970"
Content-Length: 0
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 192.168.10.31:5060;branch=z9hG4bK-343133-3ccb8a78b8614638665f0af2a998a686
From: <sip:Frax01@sip.dialnow.com>;tag=706572717
To: <sip:Frax01@sip.dialnow.com>
Contact: <sip:77.72.169.129:5060>
Call-ID: 50baef7c3a407e50d4d539a1e35cff41@192.168.10.31
CSeq: 2 REGISTER
Server: (Very nice Sip Registrar/Proxy Server)
Allow: ACK,BYE,CANCEL,INVITE,REGISTER,OPTIONS,INFO,MESSAGE
Content-Length: 0
Other code: 100
SIP/2.0 200 Ok
Via: SIP/2.0/UDP 192.168.10.31:5060;branch=z9hG4bK-343133-3ccb8a78b8614638665f0af2a998a686
From: <sip:Frax01@sip.dialnow.com>;tag=706572717
To: <sip:Frax01@sip.dialnow.com>
Contact: <sip:Frax01@192.168.10.31:5060;transport=udp>;expires=120
Call-ID: 50baef7c3a407e50d4d539a1e35cff41@192.168.10.31
CSeq: 2 REGISTER
Server: (Very nice Sip Registrar/Proxy Server)
Allow: ACK,BYE,CANCEL,INVITE,REGISTER,OPTIONS,INFO,MESSAGE
Content-Length: 0
Registered
DEBUG - Request sent:
INVITE sip:6281386725319@dialnow.com SIP/2.0
Via: SIP/2.0/UDP 192.168.10.31:5060;branch=z9hG4bK-343133-e18f3eca8f76bd0a4378a12dd6e7a0d7
Max-Forwards: 70
To: <sip:6281386725319@dialnow.com>
From: <sip:Frax01@sip.dialnow.com>;tag=706572717
Call-ID: 66341e5e43e50e106a7fbf2866c0a1d3@192.168.10.31
CSeq: 3 INVITE
Contact: <sip:Frax01@192.168.10.31:5060;transport=UDP>
Content-Type: application/sdp
Content-Length: 300
如您所见,它在发送 INVITE 请求后就停止了。
提前谢谢你,
亚当。
更多信息:
我尝试了 user2932861 的建议,但没有成功。我已经尝试使用我的公共(public) IP 地址,但它仍然停留在 INVITE 请求上。另外,我已经设置了我的SDP内容,下面是我的SDP内容:
ContentTypeHeader contentType = this.headerFactory.createContentTypeHeader("application", "sdp");
String sdpData = "v=0\n" +
"o=user1 392867480 292042336 IN IP4 *my IP*\n" +
"s=-\n" +
"c=IN IP4 *my IP*\n" +
"t=0 0\n" +
"m=audio 8000 RTP/AVP 0 8 101\n" +
"a=rtpmap:0 PCMU/8000\n" +
"a=rtpmap:8 PCMA/8000\n" +
"a=rtpmap:101 telephone-event/8000\n" +
"a=sendrecv";
byte[] contents = sdpData.getBytes();
request.setContent(contents, contentType);
注意:IP 地址已被审查。
提前致谢!
事实上,它并没有完全返回 NO 响应,在沉默一段时间后(没有返回任何东西),控制台会显示“事务超时”。知道为什么会这样吗?
最佳答案
transaction timeout对应sip timeout,应该是32s。您收到此 408 答复是因为您没有收到答复。这是堆栈本身生成的自动答案,而不是远程方的答案。
您检查过您的防火墙设置了吗?如果您的 OS 防火墙没有问题,您是否检查了您的家庭网关?
REGISTER 和 INVITE 请求是否发送到相同的 IP 地址?您可以使用 wireshark 检查.
约翰
关于Java - JAIN SIP INVITE 不返回响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19925420/
我目前正在使用 JAIN SIP 库 在 java 中编写应用程序,过去几天我一直在尝试使用 SUBSCRIBE 和 NOTIFY 消息。我目前有 NOTIFY 消息,其内容类型为“message/s
我正在 Mobicent Jain Slee 平台 (2.7.0) 上工作。我需要实现一个当前尚未实现的新直径应用程序(sd 接口(interface))。基于jDiameter docs It al
我需要从“From header”中获取分机号码,我已经尝试了所有方法但没有任何效果。 甚至尝试过: byte[] raw = req.getRawContent(); 然后手动查找发件人和号码,但是
我正在使用 Jain Sip 库,试图创建到星号服务器的连接。我一直在使用此页面中的 textclient 示例应用程序: http://www.oracle.com/technetwork/arti
我写了一个可以与 PBX 通信的软电话(由 SIPp 模拟)。为此,我使用 java 的 jain-sip 框架。我的问题是,jain-sip 会自动发送 sip 消息。例如,在收到 RE-INVIT
我正在 eclipse 环境中使用 JAIN SIP 库开发 SIP 客户端。 我在获得授权时遇到问题。我还实现了 MD5 质询并将授权添加到第二个注册函数。 授权凭据也是正确的,因为我使用可用的 S
我正在尝试使用 JAIN SIP API 发送 SIP 注册请求。我已经在类中实现了 javax.sip.SipListener,并且我的程序成功发送了请求,甚至我从 sip 服务器收到了 401 未
有这方面的代码示例吗?我想知道当收到 INVITE 请求时,processRequest 中的流程应该是什么。 我特别感兴趣的是如何将请求从一个 UA 转发到另一个先前注册的 UA。 最佳答案 查看h
我正在创建一个实现 SipListener 接口(interface)的类,以接收来自 JAIN-SIP 堆栈的事件(适用于 Android 设备)。为了测试它,我将 2 台设备连接到 OpenSIP
我正在尝试将 SIP 通知发送到 SIP 端点,但如果 SIP 端点在同一台机器上,则会出现错误。如果我使用两台不同的机器,它就可以工作。 sipCoreComponentService.sendCh
我正在尝试启动 Mobicents USSD 网关。现在问题如下:Jboss 正在尝试在部署其依赖项之前部署模块,因此返回错误: SLEE DUs not deployed, due to missi
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 4 年前。
public void call(Response response) { try { cseq++; current_process = cseq + " I
我刚刚开始研究 Jain Sip,我想知道如何创建一个仅包含 IP 地址而不包含用户和 @ 符号的 SipUri。 所以目前我得到 sip:user@192.xxx.x.xxx 并且我想得到 sip:
我目前在 Android 上使用 Jain Sip,我正在尝试让 SIP 注册正常工作。 我可以将注册 SIP 消息放在一起,但在发送消息后,它似乎只是被发送回我的应用程序,并且我的应用程序 proc
我们遇到这样的情况:UAC 向服务器发送 INVITE,服务器以 3xx-6xx 进行响应。如果 UAC 未对此响应发送 ACK - 则不会重传。 根据 RFC3261 ( https://www.i
您好! 我正在开发(尝试开发)Android 的 VoIP SIP 应用程序,在与 mjsip、pjsip 和 sdk 的库争论了两周之后,我决定使用 JAIN-SIP。从理论上讲,图书馆看起来很棒。
我正在尝试使用 Jain SIP 制作一个 Android 应用程序。我已经阅读了 SIP 的基本教程,现在我正在寻找如何在 android 中实现 jain sip 的教程。我搜索但我没有看到任何如
我一直在研究在 Java 中使用 SIP( session 启动协议(protocol))的各种 API 选项。 到目前为止,我已经将范围缩小到 JAIN SIP 和 MJSIP,但我无法弄清楚两
我正在尝试在 android 上实现 JAIN sip 堆栈,但是当我尝试编译演示程序时出现此错误: trouble processing "javax/sip/ClientTransaction.c
我是一名优秀的程序员,十分优秀!