久々のIP-PBXねた。

最近はずっと安定していたので大きな変更はなく運用中のAsterisk。

ただ、出先からお客さんに電話をするときにSIPでかけるとやっぱり通話が安定しない事がある…
そんな時は自分の携帯から店に電話するとDISAが有効になって、そこからダイヤルして安定した通話を用意していたんだけど…

DISAだとダイヤル後に手動で電話しなきゃいけないから面倒くさい!!!
って事でスマホからSIP通話は使わないようにして、簡単にお客さんに電話出来るシステムを考えてみた!

extensions_custom.confにスマホ専用コンテキストを追加。

[spcallback]
exten => _X.,1,NoOP(${EXTEN})
exten => _X.,n,AGI(spcallback.agi,${EXTEN})
exten => _X.,n,Hangup

スマホ用SIPアカウントのコンテキストをこれに変更。

AGIファイルを作る。

#!/bin/sh

echo “Channel: Local/携帯番号@from-internal
CallerID: 301
Retries: 0
RetryTime: 0
WaitTime: 30
Context: from-internal
Extension: $1
Priority: 2″ > /var/spool/asterisk/call.txt

chmod 600 /var/spool/asterisk/call.txt

mv /var/spool/asterisk/call.txt /var/spool/asterisk/outgoing/

こんな感じで動作は…

SIPアプリから発信

応答せずに通話切断される

携帯にPBXから着信

電話に出るとSIPで発信しようとした相手にダイヤルされる

って感じで動作する。
これならスマホの電話帳や着信履歴から店番を使って簡単に発信できる!
携帯電話回線を使って発信するから安定した音声で通話可能。

コレなら間違い電話の心配なく連絡出来るw