Java SIP在会话进程中发送数据

Java SIP在会话进程中发送数据,java,session,sip,phone-call,jain-sip,Java,Session,Sip,Phone Call,Jain Sip,我有一个SIP门系统。我已经开发了注册和打电话的代码 一旦我发出邀请,我会立即得到一个会话进度,现在我需要在此会话期间发送一个数字字符代码 我正在使用Jain SIP进行开发。有一些不同的选项: 另一端可能会发生电话事件,或者只是发送DTMF(由于压缩语音多次导致DTMF识别困难,所以这种可能性较小) 现在的情况是,传统上,虽然可以立即接收通信(例如,收听铃声或不收费的公告),但双向通信仅在应答后才可能进行(在SIP中转换为200 OK之后) 在您的情况下,另一端、您正在使用的终端或提供商可能会

我有一个SIP门系统。我已经开发了注册和打电话的代码

一旦我发出邀请,我会立即得到一个会话进度,现在我需要在此会话期间发送一个数字字符代码

我正在使用Jain SIP进行开发。

有一些不同的选项: 另一端可能会发生电话事件,或者只是发送DTMF(由于压缩语音多次导致DTMF识别困难,所以这种可能性较小)

现在的情况是,传统上,虽然可以立即接收通信(例如,收听铃声或不收费的公告),但双向通信仅在应答后才可能进行(在SIP中转换为200 OK之后)

在您的情况下,另一端、您正在使用的终端或提供商可能会强制执行该限制

如果没有,那么您可以使用早期媒体(您可以查看以进行全面讨论)

基本上,接收端可以在18倍的临时响应(例如183呼叫进度)上发送SDP应答。交换后,呼叫和被叫可以启动通信(并且可以是双向的)

有两种可能性:

  • 调用和调用支持临时可靠响应(请参阅。在本例中,协商是通过PRACK完成的。协商的媒体可以在200 OK之前使用更新请求进行修改

  • 呼叫或被呼叫不支持临时可靠响应。SDP应答仍然可以包含在18x中,但不能在应答之前更改,200 OK必须包含完全相同的SDP应答


  • 您需要如何发送数字代码?是带内(例如通过RTP事件或普通DTMF)还是带外(例如使用INFO方法)我想我可以使用INFO方法,我需要将代码作为DTMF信号发送。我必须将我的字符代码转换为DTMF信号并发送吗?好的,这真的取决于对方的期望或你能协商什么。实际上,当我从他们提供的SIP电话或我的电话呼叫系统时,一旦会话开始,当我拨代码时,例如:1111*它接受它。所以我确定它接受DTMF信号。