アスタリスク+ Cisco SPA5XX、SPA3XX-サーバー通知付きのDND

最近、会社はIPフォンを変更しました。 Cisco SPA504Gcisco SPA303ギガセットに取って代わりました 。 私は電話の専門家ではないので、dnd(Do not Disturb)モードは初めてでした。 ノベルティはすぐに会社に定着しました。 しかし、ここに問題があります。モードを切り替えると、電話はサーバーに通知しません。 アクセス不能な電話へのコールがビジー状態で終了しました。 発信者は、加入者が現在電話で話しているのか、そこにいないのかを疑問に思うだけでした。 この問題を解決することにしました。



ハブにはすでに同様の投稿がありますが、Cisco電話の機能は考慮されていません。 サーバーが電話でdndのアクティビティを確認できるようにするために、 muonユーザーの開発を使用しました。 次のコンテンツをダイヤルプランに追加します(必要に応じてこのコンテンツを含めることを忘れないでください)。



[dnd_on-off] exten => *75,1,Answer exten => *75,n,Set(STATE=RINGING) exten => *75,n,Set(DEVICE_STATE(Custom:DND${CALLERID(number)})=${STATE}) exten => *75,n,Hangup exten => *76,1,Answer exten => *76,n,Set(STATE=NOT_INUSE) exten => *76,n,Set(DEVICE_STATE(Custom:DND${CALLERID(number)})=${STATE}) exten => *76,n,Hangup
      
      





電話を(サーバー上で)dndモードに設定するには、 * 76をダイヤルして* 75を削除します 。 したがって、サーバー上の変数${DEVICE_STATE(Custom:DND< >)}



の値を確認すると、電話機の状態がわかります。



この段階では、あまり便利ではありません。 電話には何も表示されません( 問題1 )。 また、ユーザーの困惑:「ボタンをクリックしてdndモードを設定および削除していましたが、今では奇妙な組み合わせを入力する必要があります。」( 問題2 )。 さらに進めます。



解決策1:

携帯電話のウェブ管理領域の管理者ログイン、詳細設定モードの[ 地域 ]タブには、[ 垂直サービスアクティベーションコード]セクションがあります。 DND Act CodeおよびDND Deact Codeパラメーターがありそれぞれ値* 76および* 75を設定します。 これで、電話でこれらのサービスコードをダイヤルすると、dndモードがオン/オフになります(電話で)。 しかし、残念なことに、電話は再びサーバーに通知しません。



この問題を解決するには、電話にこれらのコードをダイヤルさせる必要があります。 垂直サービスアナウンスメントコードセクションを探しています。 Service Annc Base Numberパラメーターを見つけ、 そこに* 7 (これは、サービスコードをダイヤルするときに電話が呼び出す番号のプレフィックスです)、 Service Annc Extension Codesパラメーター: DDT:6; DDF:5 (これは、操作、 DDT



応じた番号のサフィックスです) -dnd、 DDF



インストール-dndの削除)。 次に、[ 電話 ]タブに移動し、[ 補足サービス]セクションで、[ サービスアンカーサービス]パラメーターをyesに設定します 。 このパラメーターのおかげで、電話は、先ほど示したとおり、サフィックスとプレフィックスで番号をダイヤルします。 やった、 問題1は解決した。



解決策2

電話機にはボタンを再割り当てして使用する機能があります。 ここで、dndを削除して設定するプロセスを少し複雑にする必要がありました。 以前は、これは1つのボタンを押すことで行われていましたが、1つのボタンがインストールを担当し、もう1つのボタンが削除を担当します。 この問題を解決できませんでしたが、 ここ (最後の投稿)では、1つのプログラム可能なキーに2つのアクションを交互に割り当てることができると書いていますが、うまくいきませんでした。 これを行う方法を知っている人は、コメントに書いて、私は感謝します。



[ 電話 ]タブの[ プログラム可能なソフトキー]セクションで、2つのプログラム可能なボタンを作成します。

PKS1fnc = sd; ext = * 75; nme = dnd

PKS2fnc = sd; ext = * 76; nme = -dnd

前のdndボタン(dndを削除)にPKS2



を割り当て、そのPKS2



ボタン(どの機能であったかは覚えていませんが、誰も使用していません) PKS1



これを行うには、 アイドルキーリストパラメータにpsk1 | 7; psk2 | 8;と記述します。 適切な場所に。 プログラマブルキーであるProgrammable Softkey Enableパラメータyesを 必ず有効にしてください。 [ すべての変更を送信]をクリックし、電話が再起動して使用できるようになるまで待ちます。



私は、ダイヤルプランの着信コールでdndのチェックを書きませんでした-私の手が届くまで。 上記のhabrからの投稿では、既に実装されています。 電話のステータスを示すために、AMIリクエストに基づいてコンピューター上のソフトウェアを使用します。



PS

誰が、1日に何回、この政権をいつ、何時、などに置くかがすぐに面白くなった。 誰かが興味を持つかもしれません。 この目的のために、MySQLでテーブルを作成しました。



 CREATE TABLE `dnd` ( `id` int(11) NOT NULL AUTO_INCREMENT, `number` varchar(3) NOT NULL, `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `action` tinyint(1) NOT NULL, PRIMARY KEY (`id`) )
      
      





内容を変更しました



 [dnd_on-off] exten => *75,1,Answer exten => *75,n,Set(STATE=RINGING) exten => *75,n,Set(DEVICE_STATE(Custom:DND${CALLERID(number)})=${STATE}) exten => *75,n,MYSQL(Connect connid localhost user password database) exten => *75,n,MYSQL(Query resultid ${connid} INSERT INTO dnd (number, action) VALUES ("${CALLERID(number)}", false)) exten => *75,n,MYSQL(Disconnect ${connid}) exten => *75,n,Hangup exten => *76,1,Answer exten => *76,n,Set(STATE=NOT_INUSE) exten => *76,n,Set(DEVICE_STATE(Custom:DND${CALLERID(number)})=${STATE}) exten => *76,n,MYSQL(Connect connid localhost user password database) exten => *76,n,MYSQL(Query resultid ${connid} INSERT INTO dnd (number, action) VALUES ("${CALLERID(number)}", true)) exten => *76,n,MYSQL(Disconnect ${connid}) exten => *76,n,Hangup
      
      







それだけです、ご清聴ありがとうございました。



UPD



1つのボタンですべてを実行することが判明したため、ファームウェアをバージョン7.5.5に更新する必要がありました。

PKS1fnc = sd; ext = * 75; nme = dnd; ext2 = * 76; nme2 = -dnd



確かに、厄介な問題があります。 電話機をdndに置いて再起動すると、ボタンは状態1(put dnd)になりますが、dndはすでにオンになっています。



All Articles