Asterisk-Java支持将DTMF驱动到MeetMe会议?

时间:2013-06-03 21:22:39

标签: java asterisk digit dtmf

我有一个Java应用程序,通过Asterisk-Java访问Asterisk作为管理员。该应用程序有一个拨号程序界面,我可以使用它来拨打数字字符串并播放单个数字到sip.conf中定义的扩展名。现在,我试图弄清楚如何从此拨号器(使用A-J PlayDtmfAction)驱动数字到MeetMe会议,输入MeetMe请求的PIN。在我的DialPlan中,我有一个ext-meetme上下文支持confRoom 1024 ...

>[ Context 'ext-meetme' created by 'pbx_config' ]
>  '1024' =>         1. Macro(user-callerid,)                      [pbx_config]
>                    2. Set(MEETME_ROOMNUM=1024)                   [pbx_config]
>                    3. Set(MAX_PARTICIPANTS=2)                    [pbx_config]
>                    4. Set(MEETME_MUSIC=${MOHCLASS})              [pbx_config]
>                    5. Gosub(sub-record-check,s,1(conf,1024,always))
>[pbx_config]
>                    6. GotoIf($["${DIALSTATUS}" = "ANSWER"]?READPIN)
>[pbx_config]
>                    7. Answer()                                   [pbx_config]
>                    8. Wait(1)                                    [pbx_config]
>                    9. Set(PINCOUNT=0)                            [pbx_config]
>     [READPIN]      10. Read(PIN,enter-conf-pin-number,,,,)       [pbx_config]
>
><THIS IS WHERE I WANT TO INJECT A DTMF STRING>
>
>                    11. GotoIf($[x${PIN} = x123]?USER)            [pbx_config]
>                    12. GotoIf($[x${PIN} = x321]?ADMIN)           [pbx_config]
>                    13. Set(PINCOUNT=$[${PINCOUNT}+1])            [pbx_config]
>                    14. GotoIf($[${PINCOUNT}>3]?h)                [pbx_config]
>                    15. Playback(conf-invalidpin)                 [pbx_config]
>                    16. Goto(READPIN)                             [pbx_config]
>     [ADMIN]        17. Set(MEETME_OPTS=aAoTqcIMsr)               [pbx_config]
>                    18. Goto(STARTMEETME,1)                       [pbx_config]
>     [USER]         19. Set(MEETME_OPTS=oTqcIMsr)                 [pbx_config]
>                    20. Goto(STARTMEETME,1)                       [pbx_config]

您可以看到我需要向MeetMe播放PIN的位置。我不确定[READPIN]在这里表示什么。当我打开Asterisk CLI详细模式时,我可以看到上面的数字10。然后发生超时,Asterisk说用户没有输入任何数字。

问题是我无法正确定义PlayDtmfAction正确的目标channelID来播放数字。有效的是播放SIP / 100-00034bc2等真实分机的数字。 MeetMe没有这样的频道。如果我在拨号方案的此时查询呼叫频道的信息,它会将目的地显示为1024 @ from-internal:1。我尝试使用PlayDtmfAction,但Asterisk返回错误。我也尝试了1024 @ ext-meetme,Local / 1024,Local / 1024 @ ext-meetme:1等等。

我听说过使用AGI,但也读到AGI不应该用于阻止像MeetMe这样的应用程序。如果我可以使用AGI,我很乐意学习如何。

我使用FreePBX配置的系统,如果这很重要的话。我的应用程序与FreePBX分开。

任何帮助表示赞赏,我很乐意收到任何信息。

谢谢!

格雷格在MA

0 个答案:

没有答案