从 python esl 发起会议
Posted
技术标签:
【中文标题】从 python esl 发起会议【英文标题】:originate conference from python esl 【发布时间】:2016-08-09 18:00:34 【问题描述】:我想从 ESL 程序发起电话会议。
在我的 python 脚本中,我调用了第一个数字:
freeswitchcon.api("originate","sofia/gateway/MySIP/91XXXXXXXXXX+" &conference(9099)"
然后我拨打另一个号码:
freeswitchcon.bgapi("originate","sofia/gateway/MySIP/91XXXXXXXXXX+" &conference(radioHealth_$strftime(%Y-%m-%d)+flagsmute)"
我的拨号方案是:
<extension name="conf_demo">
<condition field="destination_number" expression="^9099$">
<action application="conference" data="radioHealth_$strftime(%Y-%m-%d)+flagsendconf"/>
</condition>
<extension name="conf_demo">
<condition field="destination_number" expression="^9098$">
<action application="conference" data="radioHealth_$strftime(%Y-%m-%d)+flagsmute"/>
</condition>
我接到第一个号码的电话,但没有接到第二个号码。 Freeswitch 日志是:
2016-04-18 05:37:26.417807 [NOTICE] switch_channel.c:1055 New Channel sofia/external/91XXXXXXXXXX [a22ea00c-0527-11e6-86df-415bf8be0d99]
2016-04-18 05:37:26.777867 [NOTICE] sofia.c:7539 Hangup sofia/external/91XXXXXXXXXX [CS_CONSUME_MEDIA] [CALL_REJECTED]
2016-04-18 05:37:26.777867 [NOTICE] switch_core_session.c:1641 Session 24 (sofia/external/91XXXXXXXXXX) Ended
2016-04-18 05:37:26.777867 [NOTICE] switch_core_session.c:1645 Close Channel sofia/external/91XXXXXXXXXX [CS_DESTROY]
任何指导将不胜感激
【问题讨论】:
【参考方案1】:我意识到这已经晚了几年,但我注意到您在第一个发起命令中调用了普通 api:
freeswitchcon.api("originate","sofia/gateway/MySIP/91XXXXXXXXXX+" &conference(9099)"
这意味着将启动第一个调用,但随后 python 将等待该调用返回(即挂断时),然后再继续。
如果你使用freeswitchcon.bgapi
,就像在你的第二次调用中一样,那么调用将在后台发起,python 在继续之前不会等待调用结束。
【讨论】:
以上是关于从 python esl 发起会议的主要内容,如果未能解决你的问题,请参考以下文章