精华内容
下载资源
问答
  • Opal-开源

    2021-04-26 13:59:46
    实时图形应用程序的开放抽象层。 这个项目是一个高度优化的跨平台(或将成为)游戏内核。 每个目标CPU均应存在一个Opal HAL。 C ++源代码符合ANSI,并且在编译时无需更改
  • Opal Toolkit-开源

    2021-04-28 02:52:05
    Opal是一个工具包,用于轻松将科学应用程序包装为群集,网格和云资源上的Web服务。 用户可以从其自定义应用程序和工作流环境中使用简单的Web服务API将这些软件作为服务访问。
  • OPAL工程是一个集合了OPENH323和SIP协议的开源VoIP协议,上面给出的是OPAL工程的源码
  • 随着VoIP和NGN技术的发展,H.323时代即将过渡到SIP...而然当在SIP时代,则出现了群雄割据的状况,SIP相对于H.323简 单,灵活,于是各种协议栈层出不穷,下面将详细对比最具有代表性的5个开源项目:OPAL,VOCAL,sipX,R...

    随着VoIP和NGN技术的发展,H.323时代即将过渡到SIP时代,在H.323的开源协议栈中,Openh323占统治地位,它把一个复杂而又先进 的H.323协议栈展现在普通程序员的眼前,为H.323普及立下了汗马功劳。而然当在SIP时代,则出现了群雄割据的状况,SIP相对于H.323简 单,灵活,于是各种协议栈层出不穷,下面将详细对比最具有代表性的5个开源项目:OPAL,VOCAL,sipX,ReSIProcate,oSIP

      OPAL是Open Phone Abstraction Library,是Openh323的下一个版本,它仍然使用了Openh323的体系结构,并在其基础上进行扩展,同时实现了SIP,H.323,但在 音频和视频的编码和传输部分有较大改动。OPAL初衷设计是包含任何电话通信协议,所以其底层进行了高度的抽象化,所以也能够很容易的支持 MGCP,PSTN和将来会出现的协议。不过由于Openh323的最后一个版本还在开发中,所以原本6月发布的OPAL也被推迟,现有的OPAL还非常 不完善,BUG也非常多,不过相信以Openh323的开发班底,一定能让OPAL十分优秀。
      CVS : :pserver:anonymous@cvs.sourceforge.net:/cvsroot/openh323/opal
      Language : C++
      VxWorks port : Yes
      Win32 port : Yes
      Linux port : Yes
      Supports RFC 3261 : Yes
      Supports RFC 2327 : Yes
      Supports RFC 3264 : Yes
      Supports RFC 3263 : No
      Supports RFC 3515 : Yes
      Supports RFC 3262 : No
      Supports RFC 3311 : No
      TCP : Yes
      UDP : Yes
      SIZE :  8MB
      License : MPL
      Document : None
      Samples : UA,GK

      VOCAL是vovida.org开发的SIP系统,VOCAL应该是目前功能最完善,使用者最多的开源SIP协议栈了.它不只包括了协议栈, 还包括了h323与sip转换网关,对SIP的各种Server的功能支持也非常完善.不过很可惜,不支持windows平台,而且自从vovida被 CISCO收购以后就停止了开发,最后的版本是2003年4月的1.5.0。
      CVS : :pserver:anonymous@cvs.vovida.org:/cvsroot/vocal
      Language : C++
      VxWorks port : No
      Win32 port : Partial
      Linux port : Yes
      Supports RFC 3261 : Partial
      Supports RFC 2327 : Yes
      Supports RFC 3264 :

    Supports RFC 3263 :
      Supports RFC 3515 : Yes
      Supports RFC 3262 :
      Supports RFC 3311 :
      TCP : Yes
      UDP : Yes
      SIZE : 6MB
      License: Vovida software licencse
      Document : Few
      Samples : UA,GK,GW

      sipX是一个SIP系统,由SIPFoundry开发。sipX是从reSIProcate分离出来的,sipX除了包括SIP stack外,还包括了sipXphone,sipXproxy,sipXregistry等等...,由它们构成了完整的SIP系统,而且sipx还支 持嵌入式系统,各个模块可以按需取舍。不过可惜是几乎没有任何开发文档。
      SVN : http://scm.sipfoundry.org/viewsvn/
      Language : C++
      VxWorks port : Yes
      Win32 port : Yes
      Linux port : Yes
      Supports RFC 3261 : Yes
      Supports RFC 2327 : Yes
      Supports RFC 3264 : Yes
      Supports RFC 3263 : Yes
      Supports RFC 3515 : Yes
      Supports RFC 3262 : No
      Supports RFC 3311 : No
      TCP : Yes
      UDP : Yes
      SIZE : <4 Mb
      License : LGPL
      Document : None
      Samples : UA,GK,GW

      ReSIProcate同样也是由SIPFoundry开发,ReSIProcate最开始起源于Vocal,由于Vocal开始只支持 rfc3254,为了支持最新的rfc3261,ReSIProcate诞生了,但现在,ReSIProcate已经成为一个独立SIP协议栈了,它十分 稳定,并且很多商业程序都在使用。
      SVN : http://scm.sipfoundry.org/viewsvn/resiprocate/main/sip/
      Language : C++
      VxWorks port : No
      Win32 port : Yes
      Linux port : Yes
      Supports RFC 3261 : Yes
      Supports RFC 2327 : Yes
      Supports RFC 3264 : Yes
      Supports RFC 3263 : Partial

    Supports RFC 3515 : Yes
      Supports RFC 3262 : No
      Supports RFC 3311 : No
      TCP : Yes
      UDP : Yes
      SIZE : < 2.5 Mb
      License : Vovida
      Document : Few
      Samples : None

      oSIP的开发开始于2000年7月,第一个版本在2001年5月发布,到现在已经发展到2.0.9了。它采用ANSI C编写,而且结构简单小巧,所以速度特别快,它并不提供高层的SIP会话控制API,它主要提供一些解析SIP/SDP消息的API和事务处理的状态 机,oSIP的作者还开发了基于oSIP的UA lib:exosip和proxy server lib:partysip.
      CVS : :ext:anoncvs@savannah.gnu.org:/cvsroot/osip
      Language : C
      VxWorks port : Yes
      Win32 port : Yes
      Linux port : Yes
      Supports RFC 3261 : Yes
      Supports RFC 2327 : Yes
      Supports RFC 3264 : Yes
      Supports RFC 3263 : Yes
      Supports RFC 3515 : No
      Supports RFC 3262 : No
      Supports RFC 3311 : Yes
      TCP : Yes
      UDP : Yes
      SIZE : 400kb
      License : LGPL
      Samples : UA,GK

      综合上述评测,可以看出5种SIP协议栈各有千秋,OPAL有发展潜力,VOCAL比较完善,sipX兼容性好,ReSIProcate教稳定,oSIP小巧而快速。所以要根据应用的不同选择恰当的协议栈进行研究开发。

    展开全文
  • 本文转载自:... OPAL是Open Phone Abstraction Library的字母缩写,仍然是Equivalence公司开发的开源VoIP协议栈,从2001年便开始开发了,直到现在还没有正式发布过一个版本,只能从CVS: http://cvs.sourcefo

    文章转载自:罗索实验室 [http://www.rosoo.net/a/201106/14613.html]


    OPAL是Open Phone Abstraction Library的字母缩写,仍然是Equivalence公司开发的开源VoIP协议栈,从2001年便开始开发了,直到现在还没有正式发布过一个版本,只能从CVS:http://cvs.sourceforge.net/viewcvs.py/openh323/opal下载最新的版本,而且现在的2.05bate版有着非常多的问题,但这些丝毫不能阻止我对OPAL的看好。OPAL仍然采用PWLIB作为开发库,最新的PWLIB实际已经只剩PTLIB,Equivalence公司已经停止了对PWLIB的GUI开发了,GUI全面转向更为强大的wxWindows。OPAL作为Openh323的下一代协议栈最大的特点是加入了对SIP协议的支持,OPAL保留了Openh323大部分代码,并加入了对EndPoint,Connection等抽象描述的基类,使得添加新的协议和设备变得更加简单和方便。

        OPAL中最重要的类是新加的:OpalManager,它跟Openh323中的H323EndPoint地位一样,它定义了OPAL系统中最基本的操作,所以每个应用程序必须从OpalManager派生一个类,然后重载虚函数实现自己的操作。
    OpalManager::SetUpCall(partyA,partyB,token); 呼叫,partyA是会话发起人,partyB是会话接受人
    OpalManager::OnIncomingConnection(connection); 接听,返回TRUE则接听,返回FLASH则拒绝
    OpalManager::AdjustMediaFormats(connection,mediaFormats); 调整媒体格式
    OpalManager::ClearCall(token,reason,sync) 清除呼叫,sync如果为NULL则不等待快速返回
    OpalEndPoint是描述端点的基类,H323,SIP,PSTN,IVR,LID,声卡的端点都是继承于这个类,在这里值得注意的是连声卡设备也看做一种端点。
    OpalPCSSEndPoint则是EndPoing中比较重要的一个类,毕竟打电话还是声卡用的多,OpalPCSSEndPoint的构造函数必须引用派生的OpalManager类的实例。

    下面具体例子SimpleOPAL来讲解:
    opal = new MyManager;                                                           //新建一个MyManager的实例
    if (opal->Initialise(args))                                                          //调用MyManager::Initialise()函数初始化
    opal->Main(args);                                                                   //等待用户输入命令
    cout << "Exiting " << GetName() << endl;
    delete opal;                                                                             //擦pp
    部分Initialise()函数代码:
    SetVideoInputDevice(video);                                                    //设置输入视频设备
    ...
    SetVideoOutputDevice(video);                                                  //输出视频设备
    ...
    SetAudioJitterDelay(minJitter, maxJitter);                                 //声音抖动缓存的最小和最大值
    ...
    SetMediaFormatMask(args.GetOptionString('D').Lines());          //屏蔽的媒体格式
    SetMediaFormatOrder(args.GetOptionString('P').Lines());          //媒体格式的使用顺序
    ...
    SetTranslationAddress(args.GetOptionString("translate"));         //设置外部IP地址
    ...
    Set***Ports(rgs.GetOptionString("tcp-base").AsUnsigned(),
                   args.GetOptionString("tcp-max").AsUnsigned());        //设置相关的端口
    SetSTUNServer(args.GetOptionString("stun"));                         //使用STUN服务器
    ...
    pcssEP = new MyPCSSEndPoint(*this);                                    //新建一个MyPCSSEndPoint实例
    pcssEP->SetSoundDevice(args, "sound", PSoundChannel::Recorder)//设置相关的播放声音设备
    ...
    h323EP = new H323EndPoint(*this);                                         //h323EP的初始化
    h323EP->DisableFastStart(args.HasOption('f'));                        //关闭快速拨号模式
    h323EP->DisableH245Tunneling(args.HasOption('T'));              //关闭H245通道模式
    h323EP->AddAliasName(aliases[i]);                                         //添加昵称
    h323EP->SetInitialBandwidth(initialBandwidth);                        //限制带宽
    h323EP->StartListeners(listeners)                                             //现在才开始监听,默认是TCP:1720
    h323EP->SetGatekeeperPassword(args.GetOptionString('p'));    //注册网守所需的密码
    h323EP->UseGatekeeper(gkHost, gkIdentifer, gkInterface)       //注册网守
    ...
    sipEP = new SIPEndPoint(*this);                                               //SIP也来了
    sipEP->SetUserAgent(args.GetOptionString("sip-user-agent")); //设置用户代理,UserAgent就相当于最初openh323的endpoint
    sipEP->SetProxy(args.GetOptionString("sip-proxy"));              //设置SIP代理,此处proxy相当于h323里的Gatekeeper
    sipEP->SetMIMEForm(args.HasOption("use-long-mime"));         //MIME头的格式
    sipEP->StartListeners(listeners)                                              //监听开始,默认是TCP:5060和UDP:5060
    Main()函数部分代码:
    if (pcssEP != NULL && !pcssEP->incomingConnectionToken) {    //小心,有电话来了
          if (cmd == "n")
            pcssEP->ClearCall(pcssEP->incomingConnectionToken,     //打死我都不接
        OpalConnection::EndedByRefusal);
          else if (cmd == "y")      
            pcssEP->AcceptIncomingConnection(pcssEP->                  //喂,小莉吗?
        incomingConnectionToken);
        }
    ...
    OpalCall * call = FindCallWithLock(currentCallToken);             //让我看看是那一个通话 
    if (call != NULL) {
      cout << "Clearing call " << *call << endl;
      call->Clear();                                                                      //废话那么多,打IP电话也要钱的,挂拉
      call->Unlock();
    ...
    if (potsEP != NULL)                                                                //是打电脑还是打座机呢?
      SetUpCall("pots:*", params[1], currentCallToken);                 //打座机吧(PSTN)
    else
      SetUpCall("pc:*", params[1], currentCallToken);                    //打电脑不要钱,嘿嘿

        OPAL中的例子MFC根本无法使用,Openphone的GUI使用了wxWindows,所以必须安装了wxWindows才能正常编译,opalgw这玩意我试过好多次根本无法让别人注册,看来OPAL要走的路还很长,不过Equivalence公司开发已经渐渐的从Openh323转向了OPAL,相信不久一个稳定的OPAL将会被发布.


    展开全文
  • OPAL是Open Phone Abstraction Library的字母缩写,仍然是Equivalence公司开发的开源VoIP协议栈,从2001年便开始开发了,直到现在还没有正式发布过一个版本,只能从CVS: ...而且现在的2.05bate版有着非常多的问题,但...

        OPAL是Open Phone Abstraction Library的字母缩写,仍然是Equivalence公司开发的开源VoIP协议栈,从2001年便开始开发了,直到现在还没有正式发布过一个版本,只能从CVS: http://cvs.sourceforge.net/viewcvs.py/openh323/opal下载最新的版本,而且现在的2.05bate版有着非常多的问题,但这些丝毫不能阻止我对OPAL的看好。OPAL仍然采用PWLIB作为开发库,最新的PWLIB实际已经只剩PTLIB,Equivalence公司已经停止了对PWLIB的GUI开发了,GUI全面转向更为强大的wxWindows。OPAL作为Openh323的下一代协议栈最大的特点是加入了对SIP协议的支持,OPAL保留了Openh323大部分代码,并加入了对EndPoint,Connection等抽象描述的基类,使得添加新的协议和设备变得更加简单和方便。

        OPAL中最重要的类是新加的:OpalManager,它跟Openh323中的H323EndPoint地位一样,它定义了OPAL系统中最基本的操作,所以每个应用程序必须从OpalManager派生一个类,然后重载虚函数实现自己的操作。
    OpalManager::SetUpCall(partyA,partyB,token); 呼叫,partyA是会话发起人,partyB是会话接受人
    OpalManager::OnIncomingConnection(connection); 接听,返回TRUE则接听,返回FLASH则拒绝
    OpalManager::AdjustMediaFormats(connection,mediaFormats); 调整媒体格式
    OpalManager::ClearCall(token,reason,sync) 清除呼叫,sync如果为NULL则不等待快速返回
    OpalEndPoint是描述端点的基类,H323,SIP,PSTN,IVR,LID,声卡的端点都是继承于这个类,在这里值得注意的是连声卡设备也看做一种端点。
    OpalPCSSEndPoint则是EndPoing中比较重要的一个类,毕竟打电话还是声卡用的多,OpalPCSSEndPoint的构造函数必须引用派生的OpalManager类的实例。

    下面具体例子SimpleOPAL来讲解:
    opal = new MyManager;                                                           //新建一个MyManager的实例
    if (opal->Initialise(args))                                                          //调用MyManager::Initialise()函数初始化
    opal->Main(args);                                                                   //等待用户输入命令
    cout << "Exiting " << GetName() << endl;
    delete opal;                                                                             //擦pp
    部分Initialise()函数代码:
    SetVideoInputDevice(video);                                                    //设置输入视频设备
    ...
    SetVideoOutputDevice(video);                                                  //输出视频设备
    ...
    SetAudioJitterDelay(minJitter, maxJitter);                                 //声音抖动缓存的最小和最大值
    ...
    SetMediaFormatMask(args.GetOptionString('D').Lines());          //屏蔽的媒体格式
    SetMediaFormatOrder(args.GetOptionString('P').Lines());          //媒体格式的使用顺序
    ...
    SetTranslationAddress(args.GetOptionString("translate"));         //设置外部IP地址
    ...
    Set***Ports(rgs.GetOptionString("tcp-base").AsUnsigned(),
                   args.GetOptionString("tcp-max").AsUnsigned());        //设置相关的端口
    SetSTUNServer(args.GetOptionString("stun"));                         //使用STUN服务器
    ...
    pcssEP = new MyPCSSEndPoint(*this);                                    //新建一个MyPCSSEndPoint实例
    pcssEP->SetSoundDevice(args, "sound", PSoundChannel::Recorder)//设置相关的播放声音设备
    ...
    h323EP = new H323EndPoint(*this);                                         //h323EP的初始化
    h323EP->DisableFastStart(args.HasOption('f'));                        //关闭快速拨号模式
    h323EP->DisableH245Tunneling(args.HasOption('T'));              //关闭H245通道模式
    h323EP->AddAliasName(aliases[i]);                                         //添加昵称
    h323EP->SetInitialBandwidth(initialBandwidth);                        //限制带宽
    h323EP->StartListeners(listeners)                                             //现在才开始监听,默认是TCP:1720
    h323EP->SetGatekeeperPassword(args.GetOptionString('p'));    //注册网守所需的密码
    h323EP->UseGatekeeper(gkHost, gkIdentifer, gkInterface)       //注册网守
    ...
    sipEP = new SIPEndPoint(*this);                                               //SIP也来了
    sipEP->SetUserAgent(args.GetOptionString("sip-user-agent")); //设置用户代理,UserAgent就相当于最初openh323的endpoint
    sipEP->SetProxy(args.GetOptionString("sip-proxy"));              //设置SIP代理,此处proxy相当于h323里的Gatekeeper
    sipEP->SetMIMEForm(args.HasOption("use-long-mime"));         //MIME头的格式
    sipEP->StartListeners(listeners)                                              //监听开始,默认是TCP:5060和UDP:5060
    Main()函数部分代码:
    if (pcssEP != NULL && !pcssEP->incomingConnectionToken) {    //小心,有电话来了
          if (cmd == "n")
            pcssEP->ClearCall(pcssEP->incomingConnectionToken,     //打死我都不接
        OpalConnection::EndedByRefusal);
          else if (cmd == "y")      
            pcssEP->AcceptIncomingConnection(pcssEP->                  //喂,小莉吗?
        incomingConnectionToken);
        }
    ...
    OpalCall * call = FindCallWithLock(currentCallToken);             //让我看看是那一个通话 
    if (call != NULL) {
      cout << "Clearing call " << *call << endl;
      call->Clear();                                                                      //废话那么多,打IP电话也要钱的,挂拉
      call->Unlock();
    ...
    if (potsEP != NULL)                                                                //是打电脑还是打座机呢?
      SetUpCall("pots:*", params[1], currentCallToken);                 //打座机吧(PSTN)
    else
      SetUpCall("pc:*", params[1], currentCallToken);                    //打电脑不要钱,嘿嘿

        OPAL中的例子MFC根本无法使用,Openphone的GUI使用了wxWindows,所以必须安装了wxWindows才能正常编译,opalgw这玩意我试过好多次根本无法让别人注册,看来OPAL要走的路还很长,不过Equivalence公司开发已经渐渐的从Openh323转向了OPAL,相信不久一个稳定的OPAL将会被发布.



    版权声明:CSDN是本Blog托管服务提供商。如本文牵涉版权问题,CSDN不承担相关责任,请版权拥有者直接与文章作者联系解决。

    展开全文
  • OPAL是Open Phone Abstraction Library的字母缩写,仍然是Equivalence公司开发的开源VoIP协议栈,从2001年便开始开发了,直到现在还没有正式发布过一个版本,只能从CVS: ...而且现在的2.05bate版有着非常多的问题,但...

     OPAL是Open Phone Abstraction Library的字母缩写,仍然是Equivalence公司开发的开源VoIP协议栈,从2001年便开始开发了,直到现在还没有正式发布过一个版本,只能从CVS: http://cvs.sourceforge.net/viewcvs.py/openh323/opal下载最新的版本,而且现在的2.05bate版有着非常多的问题,但这些丝毫不能阻止我对OPAL的看好。OPAL仍然采用PWLIB作为开发库,最新的PWLIB实际已经只剩PTLIB,Equivalence公司已经停止了对PWLIB的GUI开发了,GUI全面转向更为强大的wxWindows。OPAL作为Openh323的下一代协议栈最大的特点是加入了对SIP协议的支持,OPAL保留了Openh323大部分代码,并加入了对EndPoint,Connection等抽象描述的基类,使得添加新的协议和设备变得更加简单和方便。

        OPAL中最重要的类是新加的:OpalManager,它跟Openh323中的H323EndPoint地位一样,它定义了OPAL系统中最基本的操作,所以每个应用程序必须从OpalManager派生一个类,然后重载虚函数实现自己的操作。
    OpalManager::SetUpCall(partyA,partyB,token); 呼叫,partyA是会话发起人,partyB是会话接受人
    OpalManager::OnIncomingConnection(connection); 接听,返回TRUE则接听,返回FLASH则拒绝
    OpalManager::AdjustMediaFormats(connection,mediaFormats); 调整媒体格式
    OpalManager::ClearCall(token,reason,sync) 清除呼叫,sync如果为NULL则不等待快速返回
    OpalEndPoint是描述端点的基类,H323,SIP,PSTN,IVR,LID,声卡的端点都是继承于这个类,在这里值得注意的是连声卡设备也看做一种端点。
    OpalPCSSEndPoint则是EndPoing中比较重要的一个类,毕竟打电话还是声卡用的多,OpalPCSSEndPoint的构造函数必须引用派生的OpalManager类的实例。

    下面具体例子SimpleOPAL来讲解:
    opal = new MyManager;                                                           //新建一个MyManager的实例
    if (opal->Initialise(args))                                                          //调用MyManager::Initialise()函数初始化
    opal->Main(args);                                                                   //等待用户输入命令
    cout << "Exiting " << GetName() << endl;
    delete opal;                                                                             //擦pp
    部分Initialise()函数代码:
    SetVideoInputDevice(video);                                                    //设置输入视频设备
    ...
    SetVideoOutputDevice(video);                                                  //输出视频设备
    ...
    SetAudioJitterDelay(minJitter, maxJitter);                                 //声音抖动缓存的最小和最大值
    ...
    SetMediaFormatMask(args.GetOptionString('D').Lines());          //屏蔽的媒体格式
    SetMediaFormatOrder(args.GetOptionString('P').Lines());          //媒体格式的使用顺序
    ...
    SetTranslationAddress(args.GetOptionString("translate"));         //设置外部IP地址
    ...
    Set***Ports(rgs.GetOptionString("tcp-base").AsUnsigned(),
                   args.GetOptionString("tcp-max").AsUnsigned());        //设置相关的端口
    SetSTUNServer(args.GetOptionString("stun"));                         //使用STUN服务器
    ...
    pcssEP = new MyPCSSEndPoint(*this);                                    //新建一个MyPCSSEndPoint实例
    pcssEP->SetSoundDevice(args, "sound", PSoundChannel::Recorder)//设置相关的播放声音设备
    ...
    h323EP = new H323EndPoint(*this);                                         //h323EP的初始化
    h323EP->DisableFastStart(args.HasOption('f'));                        //关闭快速拨号模式
    h323EP->DisableH245Tunneling(args.HasOption('T'));              //关闭H245通道模式
    h323EP->AddAliasName(aliases[i]);                                         //添加昵称
    h323EP->SetInitialBandwidth(initialBandwidth);                        //限制带宽
    h323EP->StartListeners(listeners)                                             //现在才开始监听,默认是TCP:1720
    h323EP->SetGatekeeperPassword(args.GetOptionString('p'));    //注册网守所需的密码
    h323EP->UseGatekeeper(gkHost, gkIdentifer, gkInterface)       //注册网守
    ...
    sipEP = new SIPEndPoint(*this);                                               //SIP也来了
    sipEP->SetUserAgent(args.GetOptionString("sip-user-agent")); //设置用户代理,UserAgent就相当于最初openh323的endpoint
    sipEP->SetProxy(args.GetOptionString("sip-proxy"));              //设置SIP代理,此处proxy相当于h323里的Gatekeeper
    sipEP->SetMIMEForm(args.HasOption("use-long-mime"));         //MIME头的格式
    sipEP->StartListeners(listeners)                                              //监听开始,默认是TCP:5060和UDP:5060
    Main()函数部分代码:
    if (pcssEP != NULL && !pcssEP->incomingConnectionToken) {    //小心,有电话来了
          if (cmd == "n")
            pcssEP->ClearCall(pcssEP->incomingConnectionToken,     //打死我都不接
        OpalConnection::EndedByRefusal);
          else if (cmd == "y")      
            pcssEP->AcceptIncomingConnection(pcssEP->                  //喂,小莉吗?
        incomingConnectionToken);
        }
    ...
    OpalCall * call = FindCallWithLock(currentCallToken);             //让我看看是那一个通话 
    if (call != NULL) {
      cout << "Clearing call " << *call << endl;
      call->Clear();                                                                      //废话那么多,打IP电话也要钱的,挂拉
      call->Unlock();
    ...
    if (potsEP != NULL)                                                                //是打电脑还是打座机呢?
      SetUpCall("pots:*", params[1], currentCallToken);                 //打座机吧(PSTN)
    else
      SetUpCall("pc:*", params[1], currentCallToken);                    //打电脑不要钱,嘿嘿

        OPAL中的例子MFC根本无法使用,Openphone的GUI使用了wxWindows,所以必须安装了wxWindows才能正常编译,opalgw这玩意我试过好多次根本无法让别人注册,看来OPAL要走的路还很长,不过Equivalence公司开发已经渐渐的从Openh323转向了OPAL,相信不久一个稳定的OPAL将会被发布.

    转载于:https://www.cnblogs.com/shengshuai/archive/2007/04/28/opal.html

    展开全文
  • Oracle开源PHP的OPAL计划开始2007-02-12eNet&CiweekHosander PHPChina.comPHPChina与Oracle共同主办的PHP技术及Oracle Database XE动手实验免费活动于2007年2月3日顺利结束。这也标志着Oracle开源PHP的OPAL...
  • opal-irb, Opal的IRB ( 交互式 ruby ) 蛋白石 irb Opal ( 。ruby 在javascript上运行)的irb ( 交互式 ruby ) 。 这是网页上的交互式控制台( REPL ) 。 不需要安装任何东西就可以交互式测试蛋白石/ruby 。 打算成为...
  • opal-rails, 将 ruby 带到Opal的Rails Rails 绑定 蛋白石 Rails 用于蛋白石 ruby 引擎的 Rails 绑定。 ( 变更日志 )安装在你的Gemfile 中gem 'opal-rails'或者当你构建新的Rails 应用程序时:rails
  • <div><pre> puts RUBY_ENGINE_VERSION </code></pre> <p>Yields <code>0.6.1</code> even if performed ...<p><code>/* Generated by Opal 0.7.0.beta4 */</code></p>该提问来源于开源项目:opal/opal</p></div>
  • Opal 是一个 Ruby 转 JavaScript 的编译器. Opal 将 Ruby 源码转成 JavaScript 源码,运行速度很快,包含一个编译器、核心库和运行时实现。 标签:Opal
  • opal, 在浏览器中,ruby 蛋白石 azure是一个 ruby 到 JavaScript source-to-source编译器。 它还具有 ruby corelib的实现。Opal是GitHub上的主机。 在 opal Gitter Chat
  • vs2017编译最新的opal和ptlib详细教程

    万次阅读 2020-08-26 17:51:24
    一、开源代码下载 地址:https://sourceforge.net/projects/opalvoip/files/ 二、详细编译步骤 1.在英文路径下面创建一个文件夹h323 将opal压缩文件和ptlib压缩文件解压到文件夹下面 如下图 2.必须先编译ptlib (1...
  • Upgrade to Opal 0.8.x

    2021-01-01 06:05:16
    <div><p>Cross compilation is working fine but I get the following ...<p>I opened an issue https://github.com/opal/opal/issues/904</p><p>该提问来源于开源项目:asciidoctor/asciidoctor.js</p></div>
  • opal-v2_4_0-src

    2010-04-08 17:13:07
    OPAL是Open Phone Abstraction Library的字母缩写,仍然是Equivalence公司开发的开源VoIP协议栈
  • MicroOpal-开源

    2021-04-26 01:32:16
    MicroOpal是用Opal编写的小型MicroOpal编译器
  • Can't get opal to work

    2021-01-11 06:14:21
    <div><p>I'm unable to get Opal to work in Sinatra. <p>My HAML filter: <pre><code> rb module Haml::Filters::Opal ... for main</code></p>该提问来源于开源项目:opal/opal</p></div>
  • beShip-开源

    2021-04-26 17:38:13
    简单的模拟游戏,使用OGRE和ODE + OPAL
  • opal-ui-源码

    2021-03-15 23:30:36
    Patternfly Seed是用于Web应用程序的开源构建脚手架实用程序。 该项目的主要目的是使开发人员在创建将使用patternfly的新项目时快速入门。 该项目的第二个目的是作为参考,为如何配置使用patternfly,webpack,react...
  • OpalVOIP-开源

    2021-04-30 23:39:52
    开放电话抽象库(OPAL)是C ++多平台,多协议的库,用于IP上的传真,视频和语音以及其他网络。 还包括可移植工具库(PTLib),它是C ++多平台抽象库和集合。
  • <div><p>I getting this error when the browser is requesting source maps: <pre><code> TypeError (no implicit conversion of ...s part of the problem)</p><p>该提问来源于开源项目:opal/opal</p></div>
  • IPP Codecs-开源

    2021-05-01 03:48:19
    适用于OPAL / OpenH323库的Intel Integrated Performace Primitives音频/视频编解码器插件,包括G.728,G.729,G.723.1,G.722.2 GSM-FR,GSM-AMR,H.261,H.263,H .264和MPEG4第2部分。
  • <div><p>Any x-string with a shell command will cause a syntax error as opal uses them for inline ... mspec, with xstrings can currently break opal.</p><p>该提问来源于开源项目:opal/opal</p></div>
  • <div><p>As you may know, I'm trying to compile Ruby to JavaScript in ...<p>As you can see <code>path</code> is not a String hence the error.</p><p>该提问来源于开源项目:opal/opal</p></div>
  • inesita, 在 ruby 中使用 Opal,前端web应用程序框架 Inesita Inesita是一个使用 ruby 快速构建浏览器应用程序的web前端框架。 它使用虚拟DOM进行页面渲染。 描述更详细的描述:这里的 。示例例如这里列出了 go
  • 2.视频会议十大开源项目排行在视频会议领域,有许多可以值得参考的开源项目,这些开源项目有的是协议栈、有的是编码器或者是传输协议,由于视频会议系统是一个综合性的应用系统,里面包含功能较多,如能把这些开源...
  • 极少有关于Opal的中文教程.因此敝人决定把学习Opal的过程记录下来勉励自己.抑或给后来者留下一些入门的资料.最近感觉学习Opal已经慢慢摸出了门道.前几个星期.摸索在 VS2005编译Opal 花了我好多天的时间.把我的耐心都...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 399
精华内容 159
关键字:

opal开源