SMSおよびSIPゲートウェイ-Multifon、Asterisk、Kannel

この記事では、単一の電話番号を使用して、 PBXまたはIVRとしてのアスタリスク、SMSゲートウェイとしてのKannelの利点を組み合わせる方法について説明します。

これを行うには、サーバーでHuawei E171モデムのFreebsd 8.2を使用しましたが、MTSモデムまたはhuawei製のメガホン(E1551モデムでもテスト済み)、メガホンSIMカードを使用できます。 ソフトフォンは電話とSJphoneを使用していました。

すでに述べたように、 MultifonはSIPをメガホン番号に接続するためのサービスです。これにより、複数の独立した回線を維持し、IP-PBXを使用して解決できます。 サービスの接続とアスタリスクとの連携についてはすでに述べたので、簡単に説明します。

SIMカードを電話機に挿入し Multifon クライアントをダウンロードします 。LinuxおよびMac OS Xのディストリビューションはベータ版で利用できます。

クライアントを起動し、登録し、コード付きSMSを受信し、コードを入力し、パスワードを設定し、すべてがクライアントで機能することを確認します。

マルチフォンクライアントをオフにします(2つのクライアントを同時にマルチフォンに接続できないため、重要です)。

Multifon * 137#のすべての機能を接続するUSSDコマンドを送信し、サービスの包含を確認します。

/etc/rc.confまたは/ etc / default / kannelに追加します
kannel_bearerbox_enable="YES" kannel_smsbox_enable="YES" asterisk_enable="YES" 

アスタリスクをインストールして構成する


 cd /usr/ports/net/asterisk make install clean service asterisk start 

インターネットには多くの説明がありますので、公式のメガホン設定に基づいて、いくつかの修正と説明を加えた設定のみを提供します。

アスタリスク構成:
 ;#/usr/local/etc/asterisk/sip.conf [general] tcpenable=yes allow=all register => 79271111111@multifon.ru:paSSwoRD:79271111111@193.201.229.35:5060/79271111111 [multifon-out] dtmfmode=inband username=79271111111 type=peer secret=paSSwoRD host=sbc.megafon.ru fromuser=79271111111 fromdomain = multifon.ru port=5060 context=multifon-in insecure=port,invite canreinvite=no ;#           [100];#   sip-       type=friend host=dynamic secret=pass100 context=phones username=100 nat=rfc3581 ;#         [101] type=friend host=dynamic secret=pass101 context=phones username=101 nat=rfc3581 

 ;#/usr/local/etc/asterisk/extensions.conf ;#      [multifon-in] exten=> 79271111111,1,Dial(SIP/100,60,t) ;#  ,   [out] exten=>_7XXXXXXXXXX,1,Dial(SIP/multifon-out/${EXTEN}) exten=>_8XXXXXXXXXX,1,Dial(SIP/multifon-out/${EXTEN}) ;#   8 exten=>_+7XXXXXXXXXX,1,Dial(SIP/multifon-out/${EXTEN}) ;#   +7 ;#exten=>_7XXXXXXXXXX,1,Dial(SIP/${EXTEN}@multifon-out,30,r) ;#  ;#    SIP  [local] exten=>_1XX,1,Dial(SIP/${EXTEN},60,rt) [phones] include => multifon-in ;# ,         include => local include => out 

 ;#/usr/local/etc/asterisk/rtp.conf [general] rtpstart=6001 ;# ,   RTP   6001  rtpend=20000 

コンソールを起動します。
 asterisk -vvvvr 

コンソールを使用して構成を再起動します。
 reload 

マルチフォンとソフトフォンへの接続の確認:
 sip show registry sip show peers 


次のURLを要求して、SIPとともに電話を有効にする必要があります。
https://sm.megafon.ru/sm/client/routing/set?login=79XXXXXXXXX@multifon.ru&password=PASSWORD&routing=2

通話が内外で通過することを確認します。

モデムの準備


電話からSIMカードを取り出し、モデムに挿入します。
サーバーにモデムを挿入し、デバイスが見つかったことを確認します。
 ls /dev | grep cuaU ls /dev | grep ttyU 

デバイスが表示されない場合は、追加してカーネルを再構築します
 device u3g 

Kannelのインストールと構成


SVNからkannelをインストールすることをお勧めしますが、このバージョンでは問題が発生していないため、ポートからインストールします。
 cd /usr/ports/www/kannel make install clean service kannel start 

Kannelはユーザー自身を作成し​​ないことに注意する価値があるので、私たちは自分で作成します。
 adduser 

また、彼はPIDファイル用のディレクトリの作成を気にしません。自分で作成します。
 mkdir /var/run/kannel chown kannel /var/run/kannel 

Kannelの構成:
 #/usr/local/etc/kannel.conf group = core admin-port = 13000 admin-password = " paSsWoRd " log-file = "/var/log/kannel/bearerbox.log" log-level = 1 access-log = "/var/log/kannel/access_kannel.log" store-file = "/var/log/kannel/store_sms" smsbox-port = 13001 dlr-storage = internal sms-resend-retry = 1 group = smsc smsc = at smsc-id = huawei0 modemtype = huawei0 device=/dev/ttyU0.2 #  /dev/ttyU0.3,    sms-center="+79271111111" my-number="+79271111111" keepalive=5 group=modems id=huawei0 name="huawei0" group = smsbox bearerbox-host = localhost sendsms-port = 13003 global-sender = "+79271111111" log-file = /var/log/kannel/smsbox.log log-level = 0 access-log = /var/log/kannel/access_smsbox.log group = sendsms-user username = "user" password = "paSsWoRd" concatenation = true max-messages = 20 # sms  php  group = sms-service keyword = default post-url = "http://localhost/service.php?tel=%p&time=%t&coding=%c&smsc=%i" concatenation = true max-messages = 0 #    sms    smssend 


kannelを再起動します
 service kannel restart 

SMSCへの接続がアドレスでオンラインであることを確認します
ローカルホスト :13000 /ステータス

ロシア語のsmsはucs-2beエンコーディングで行き来するので、変換します。 たとえば、PHPの場合:
 $text=urlencode(iconv("utf-8","ucs-2be",$text));# 

SMS送信:
 file_get_contents("http://localhost:13003/cgi-bin/sendsms?smsc=$smsc&username=user&password=paSsWoRd&coding=2&to=$to&text=$text");# 

コーディング= 2は、コーディングucs-2beに再び対応します。

ipfwが有効になっている場合は、ポートを開くことを忘れないでください(RTPのポートを含む、そうでない場合は音声/ビデオはありません)。
 ipfw add allow tcp from any to ${IpOut} 5060 via ${LanOut} #SIP ipfw add allow udp from any to ${IpOut} 5060 via ${LanOut} #SIP ipfw add allow udp from any to ${IpOut} 6000-20000 via ${LanOut} #RTP 


したがって、1つの番号に機能するSMSゲートウェイとコールセンターがあります。 さらに、アスタリスクを使用してIVRを整理し、SMSだけでなく、エンドユーザーとのインタラクティブな音声対話を通じてデジタル形式で情報を受信できます。

SIMカードのアスタリスクへの直接接続についてはここで説明しますが、最初にモデムが接続されると、モデムが「モデムのみ」モードに切り替わり、デバイスが再接続されるとデバイスが消えるため、モデムをゆがめて設定を変更することに注意してください
 audio=/dev/cuaU0.1 ;#    data=/dev/cuaU0.2 ;#    

大きすぎる場合は、設定を変更します
 rxgain=0 txgain=0 

アスタリスクに関する良い本
Kannelの素晴らしい公式マニュアル
メガホン接続手順
メガホンからの設定ファイル (それらを使用すると、発信コールで問題が発生しました)
FreeBSDでデバイスが検出されない場合のカーネル構成ファイル

Source: https://habr.com/ru/post/J123380/


All Articles