4,723
回編集
差分
→Asteriskから使う
exten => s,n,Set(RCONTACT=${CUT(RCONTACT,@,2)})
exten => s,n,Set(RCONTACT=${CUT(RCONTACT,:,1)})
exten => s,n,System(echo ${ARG1} | /usr/bin/netwrite nc ${RCONTACT} 5091)
exten => s,n,Return
ダイヤルして無線ゲートウェイと通話中に、このハンドラを使えるようにします。DYNAMIC_FEATUREで指定します。<br>
features.confに以下のようにハンドラを登録します。登録するのはapplicationmapになります。
[applicationmap]
pttctl => **,self/caller,Gosub(sub-pttctl,s,1("NETPTT:ALT"))
内線のextenとしては以下のような感じになります。内線8890を無線機区間用として例示します。
exten => 8890,1,NoOp
ただし、これは少し問題があります。PTTをオンにしたままAsterisk側の電話機を切ってしまうとPTTホールド状態で終了してしまい電波を掴んだままになってしまい、pttctlのタイムアウト(170秒)まで送信状態が続いてしまうので、電話を切ったらPTTをオフにしてやらなくてはいけません。次のように修正します。
exten => 8890,1,NoOp
exten => 8890,n,Set(CHANNEL(hangup_handler_push)=sub-pttctl,s,1("NETPTT:OFF"))
exten => 8890,n,Set(__DYNAMIC_FEATURES=pttctl)
exten => 8890,n,Dial(PJSIP/phone10)
exten => s,n,Set(RCONTACT=${CUT(RCONTACT,@,2)})
exten => s,n,Set(RCONTACT=${CUT(RCONTACT,:,1)})
exten => s,n,System(echo "NETPTT:ALT" | /usr/bin/netwrite nc ${RCONTACT} 5091)
次にconfbridge.confには以下のような無線用メニューを書きます
[radiomenu]
その上でダイヤルするには以下のように書きます
exten => 8891,1,NoOp
exten => 8891,n,Set(CHANNEL(hangup_handler_push)=sub-pttctl,s,1("NETPTT:OFF"))
exten => 8891,n,Answer
exten => 8891,n,ConfBridge(radio,,,radiomenu)