如何configurationAsterisk在呼叫build立之前发送audio

是否可以configurationAsterisk,以便在远程方实际拿起之前从接收方发送带有audio的RTP数据包?

这似乎是我的设置需要通过的VoIP一致性testing所必需的。 他们使用模拟器来testing这个,当我打电话给对方时,他们拿起接收器而不发送OK。 我可以听到对方的声音,但他们听不到我的声音。 我研究过directmediasetupprogressinbanddirectmediasetup ,但没有一个完成我所需要的。 Asterisk甚至可以做到吗?

环境:

Asterisk注册到SIP中继,硬件SIP电话注册到Asterisk。 外拨呼叫通过SIP中继。 星号版本:1.8.11。

早期的媒体可能与Asterisk,但只有在某些情况下,只有与所涉及的所有设备和服务的合作/支持。 某些电话和/或服务提供商不支持早期媒体。 支持早期语音和早期的DTMF可能会有所不同。

你有一个SIP电话注册到Asterisk,拨打外部号码。 星号轮stream在单独的SIP中继上拨打该号码。 这是两个独立的呼叫腿。 Asterisk可以将早期媒体播放回主叫方(例如自定义铃声或音乐),Asterisk可以通过SIP中继接收外部用户的早期媒体。 但是,当远程方应答时,标准的Dial()语句将自动应答()并将呼叫支路桥接在一起。

看来你希望避免这种通常所期望的行为,并且在没有Answer()的情况下桥接呼叫路线。 Dial()应用程序允许您使用“d”或“D”选项推迟通常自动应答()。 我不知道任何Dial()选项,这将允许您在没有Answer()的情况下桥接呼叫路线。

有关Asterisk的更多讨论和早期媒体的例子,请参阅Asterisk wiki。

星号是不可行的。

Asterisk不提前打开反向媒体path,因为这样会导致某些设备停止工作。 它只是向一个方向发展过早的媒体。

你可以通过重写代码来改变它(两个端点都必须支持这个),但是默认的源代码树不支持这个。

为什么不把Asterisk全部带出媒体path呢? *

 directmedia=yes directrtpsetup=yes prematuremedia=no ;this does the exact opposite of what everyone assumes it does progressinband=no 

星号会发送邀请到您的手机在SDP中指定的IP地址的另一端。 当另一方提供183会话进度时,会由Asterisk将其发送回您的手机,而另一方的IP地址则在SDP中。

只要你的手机支持,你就会有双向的早期媒体没有星号,即使有机会阻碍和混乱。

*好吧,星号在通话结束后仍然会重新回到自己的位置,否则它会一直保持不变

有两种方法。 要么使用183个早期媒体。 另一种方法是使用Answer()应用程序。

在这两种情况下,媒体都将来自Asterisk方面。

 ;  183  - 会话进度方法。 
 exten => _X。,1,Progress()
 exten => _X.n,播放(tt-monkeys)
 ;  200  - 答案 
 exten => _X。,1,Answer()
 exten => _X。,n,播放(tt-monkeys)