星号到opensips的转换.感谢所有的帮助



我目前正在将现有的星号服务器转换为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变量相等的变量?

首先要明白的是

Asterisk是类似pbx的软件。Opensips是代理软件

在Opensips中没有分组、播放等功能。你必须是编程方面的专家,并且完全了解SIP协议是如何工作的。

通道计数可以通过使用对话框和缓存服务器来模拟。但如果你在BYE/CANCEL处理中配置任何单一错误,它将不起作用。在大多数情况下,没有办法检查通道是否活动(因为它不跟踪通道的RTP数据)。

没有像Dial这样的应用程序。而不是你重写邀请数据包为正确的目的地/号码。

相关内容

  • 没有找到相关文章

最新更新