-2

現在、パフォーマンスを向上させるために、既存のアスタリスク サーバーを OpenSIP に変換する作業を行っています。

ほとんどの場合は機能していますが、実際には理解できない問題が発生しました。

アスタリスクはこれをやっています:

if ("${fromourmobile}" != "") // Check if mobile Call Waiting is set to "n"
                {
                    set(phonenumber=${FROM});
                    set(GROUP()=${phonenumber});
                    noop(Group Count: ${GROUP_COUNT(${phonenumber})});
                    if (${GROUP_COUNT(${phonenumber})} > 1)
                    {
                        Busy();
                    }
                 }

この

if (${MATH(${EPOCH} % 2)} = 0)
                {
                    set(dialhost=193.88.58.86);
                    Dial(SIP/${numbertodial}@${dialhost},60,wWtT);
                    &hangupcausecheck(${numbertodial}, ${dialhost});
                    switch (${DIALSTATUS}) 
                    { 
                        case BUSY: 
                            busy;
                            break;
                        default:
                            break;
                    }   
                    set(dialhost=195.215.252.15);
                    Dial(SIP/${numbertodial}@${dialhost},60,wWtT);
                    &hangupcausecheck(${numbertodial}, ${dialhost});
                    switch (${DIALSTATUS}) 
                    { 
                        case BUSY: 
                            busy;
                            break;
                        default:
                            break;
                    }   

私はopensipsでこれを行う同様の方法を見つけることができないようです。主にgroup_count()とhangupcausecheck()です。

さらに、アスタリスクの $server 変数に相当するものはありますか?

4

1 に答える 1

1

最初に理解する必要があると思うのは

アスタリスクは pbx ライクなソフトウェアです。Opensips はプロキシ ソフトウェアです。

Opensips には GROUP、再生などはありません。OpenSIP のプログラミングについては、プログラミングの専門家であり、SIP プロトコルの仕組みを完全に理解している必要があります。

チャネル数は、ダイアログとキャッシュ サーバーを使用してエミュレートできます。ただし、BYE/CANCEL 処理でエラーが 1 つでもある場合は機能しません。ほとんどの場合、チャネルがアクティブであることを確認する方法はありません (チャネルの RTP データを追跡しないため)。

ダイヤルのようなアプリケーションはありません。その代わりに、適切な宛先/番号の INVITE パケットを書き換えます。

于 2014-05-28T08:02:54.667 に答える