Skype For Asterisk

    目次
    ヘッダーがありません

    2024年 4月 19日, 10:53 現在の版

    この版へ

    版の一覧 に戻る。

    現在の版を閲覧

    ディジウム純正のSkypeチャネル・ドライバをインストールする事によってAsteriskでSkype発着信が可能になります。

    システム要求

    Asterisk 1.4 versions    1.4.25以上
    Asterisk 1.6.0 versions  1.6.0.6以上
    Asterisk 1.6.1 versions  1.6.1.5以上
     

    Skype Manager

    Skype For Asteriskの使用には、Skype Managerのアカウントが必要です。

    http://www.skype.com/intl/ja/business/skype-manager/

    Managerに登録したアカウント(管理者アカウントは不可)が利用可能です。

    ※通常の方法で作成したままのアカウントは利用出来ません。

     

    オンライン登録

    登録用レジスタ・ツールをダウンロードして実行します。

    ディジウムのライセンスサーバと通信する為にTCP443ポート(SSL)が外向きに開いている必要が有ります。

    cd ~
    wget http://downloads.digium.com/pub/register/linux/register
    chmod 500 ~/register
    ~/register

    購入時に送られてくるキーを入力します。会社名、担当者、連絡先など入力。

    下記フォルダにライセンスファイルが生成されるのでバックアップをとる事をお勧めします。

    /var/lib/asterisk/licenses

    ファイル名:S4A-xxxxxxxxxxxx.lic

     

    インストール

    Asteriskのバージョンによってダウンロードするファイルが異なります。

    下記アドレスから該当するファイルを選択して下さい。

    http://downloads.digium.com/pub/telephony/skypeforasterisk

    wget http://downloads.digium.com/pub/telephony/skypeforasterisk/asterisk-1.6.0/x86-32/skypeforasterisk-1.6.0_1.1.2-x86_32.tar.gz
    tar -xvzf skypeforasterisk-1.6.0_1.1.2-x86_32.tar.gz
    cd skypeforasterisk-1.6.0_1.1.2-x86_32
    make
    make install
    make samples

    asteriskを再起動します。

    asterisk -rx "restart when convenient"

    asterisk CLIからライセンス認証を確認します。

    skype show licenses

     

    chan_skype.conf

    使用するマシンやネットワーク環境に応じて設定して下さい。

    [general]    

    engine_directory=/tmp            skypeエンジンが使用するテンポラリ・ディレクトリを指定。デフォルトは/tmp

    default_user=<username>         skype for asteriskで使用するskypeアカウントを指定します。

    bind_address=0.0.0.0               NICを複数積んでいるマシンでskypeが使用するアドレスを指定。通常0.0.0.0(any)

    rtp_address=127.0.0.1       RTPが使用するアドレスを指定。デフォルトは127.0.0.1

    bind_port=0                              skypeエンジンが使用するTCPポートを指定。デフォルトは0(ランダム)

    disable_tcpauto=no        通常skypeは開いているポートを自動的に使います。ポートを指定する場合はyes

    disable_udp=no           UDPポートをメディアストリームで使えない時はyesを指定します。デフォルトはno

     

    [<username>]              skypeアカウント

    secret=<password>                    skypeにログインするパスワード

    context=skype-in           このセクションが使用するcontextを指定します。

    exten=s                  context内の着信extenを指定。デフォルトはskypeアカウントです。

    disallow=all              

    allow=ulaw,alow,g729                使用できるCodecを指定します。ulow,alow,g729が可能。g729 1ch分ライセンス含む

    direction=both                         着信(incoming),発信(outgoing),発着(both)いずれかを指定します。          

    auth_policy=accept         相手認証ポリシーを設定します。accept,accept<password>,deny,block,ignore

    buddy_autoadd=buddies,hints  相手を自動追加するかどうか指定。デフォルトno. buddies,hintsもしくは双方指定可能

    buddy_presence=yes                 相手プレゼンス情報の扱いを指定。必要性が無い場合、asteriskに負荷がかかる場合はno

     

    発信設定(internal-invisible.confの編集)

    98特番でソフトフォンからSkype宛発信するscriptの例です。

    /etc/asterisk/fonality/internal-invisible.conf

    exten => _98.,1,Dial(skype/<username>@${EXTEN:2})       ※ <username>:Asterisk-Skypeアカウント
    exten => _98.,n,Hangup

    番号とSkypeアカウントの関連付けを記述すると、ハードフォンからダイヤルでSkype宛発信が可能です。

    ダイヤル1234でSkype発信する例です。

    exten => 1234,1,Dial(skype/<trunk-username>@<username>)    ※<trunk-username>:Asterisk-Skypeアカウント
    exten => 1234,n,Hangup                    <username>:発信先Skypeアカウント

     

    Skype音声テストサービス(アカウント:ECHO123)宛の発信時動作です。

    98ECHO123.png981234.png

                 98+ECHO123                          98+1234

     

    着信ルーティング

    Skypeから着信すると、trixbox Proの場合IVRに通話が送られます。PSTNに関してすでにIVRの設定が行われている場合にはそのまま利用することができます。SkypeからのDTMFも認識します。

    (詳細は IVR設定例 : ダイヤルされた番号で通話をルーティングする などをご覧ください。)


    SkypeのCallerIDにはアルファベットが含まれていることを利用して下記のような trixbox Pro の Runscriptを準備すると、任意の内線番号に自動転送することもできます。一例として、下記のスクリプトを /var/lib/asterisk/agi-bin/fromskype.agi として保存してください。

    #!/usr/bin/perl
    use strict;
    use Asterisk::AGI;
    
    ###########################################
    # 2010 Communication Business Avenue, Inc.
    # from Skype-Call Transfer script
    ###########################################
    
    $|=1;
    
    # Setup some variables
    my %AGI; my $tests = 0; my $fail = 0; my $pass = 0;
    my $astagi = new Asterisk::AGI;
    
    while(<STDIN>) {
            chomp;
            last unless length($_);
            if (/^agi_(\w+)\:\s+(.*)$/) {
                    $AGI{$1} = $2;
            }
    }
    
    sub isAlpha{
      my $str = shift || return(undef);
      if( $str =~ /^[a-zA-Z]{1,}$/ ){
        return(1);
      }
      else{
        return(0);
      }
    }
    
    # grab the extension
    my $to_exten = shift;
    
    if(length($to_exten) == 0)
    {
            exit;
    }
    
    # "noexten" => "function off"
    if ($to_exten eq "noexten"){
            exit;
    }
    
    #SkypeCall?
    if( isAlpha($AGI{'callerid'}) ){
            #$astagi->say_alpha("SKY");
            #$astagi->say_alpha($to_exten);
            $astagi->set_callerid($AGI{'calerid'});
            $astagi->exec('Dial',"Local/$to_exten\@internal");
            $astagi->hangup();
    } else {
            #$astagi->say_alpha($AGI{'callerid'});
    }
    

     

    Runscript メニューで、

    Runscript fromskype.agi,5000
    

    などと指定すると、Skypeからの通話はすべて内線5000番に自動転送できます。

    Runscript fromskype.agi,noexten
    

    とすると、転送を停止します。

     

    fromskype.png

     

    CRMとの連携

    SugarCRM:

    参考情報

    ドイツMyCRM社のCall Managerを利用すると着信時にSkypeユーザーネームが取得でき、Webランチャも起動するようです。

    http://www.sugarcrm.com/crm/about/press-releases/20090928-mycrm-skype.html
    http://www.sugarforge.org/projects/callmanager/
    https://docs.google.com/present/view?skipauth=true&id=dd2krmd_168csrvv4f3

    Powered by MindTouch Core