1

Asterisk-Java 経由でマネージャーとして Asterisk にアクセスする Java アプリがあります。このアプリにはダイヤラー インターフェイスがあり、これを使用して、番号文字列をダイヤルしたり、sip.conf で定義された内線番号に 1 桁を再生したりできます。現在、このダイヤラーから (AJ PlayDtmfAction を使用して) 数字を MeetMe 会議に送り、MeetMe の要求に応じて PIN を入力する方法を見つけようとしています。私の DialPlan には、confRoom 1024 をサポートする ext-meetme コンテキストがあります...

>[ 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 番に到達することがわかります。次にタイムアウトが発生し、アスタリスクはユーザーが数字を入力しなかったことを示します。

問題は、数字を再生する正しい宛先 channelID を PlayDtmfAction に適切に定義できないことです。機能するのは、SIP/100-00034bc2 のような実際の内線番号に数字を再生することです。MeetMe にはそのようなチャネルはありません。ダイヤルプランのこの時点で発信チャネルの情報を照会すると、宛先が 1024@from-internal:1 と表示されます。私は PlayDtmfAction でそれを試みますが、アスタリスクはエラーを返します。1024@ext-meetme、Local/1024、Local/1024@ext-meetme:1 なども試しました。

AGI の使用については聞いたことがありますが、MeetMe などのアプリをブロックするために AGI を使用するべきではないとも読みました。AGI を使えるなら、その方法を学びたいです。

問題があれば、FreePBX によって構成されたシステムを使用します。私のアプリは FreePBX とは別のものです。

助けていただければ幸いです。リクエストされた情報を喜んで入手します。

ありがとう!

マサチューセッツ州のグレッグ

4

0 に答える 0