ハブにはすでに同様の投稿がありますが、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つのプログラム可能なボタンを作成します。
PKS1 : fnc = sd; ext = * 75; nme = dnd
PKS2 : fnc = 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に更新する必要がありました。
PKS1 : fnc = sd; ext = * 75; nme = dnd; ext2 = * 76; nme2 = -dnd
確かに、厄介な問題があります。 電話機をdndに置いて再起動すると、ボタンは状態1(put dnd)になりますが、dndはすでにオンになっています。