⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 trivialgateway.cxx

📁 mgcp协议源代码。支持多种编码:g711
💻 CXX
字号:
/* ==================================================================== * The Vovida Software License, Version 1.0  *  * Copyright (c) 2000 Vovida Networks, Inc.  All rights reserved. *  * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: *  * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. *  * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in *    the documentation and/or other materials provided with the *    distribution. *  * 3. The names "VOCAL", "Vovida Open Communication Application Library", *    and "Vovida Open Communication Application Library (VOCAL)" must *    not be used to endorse or promote products derived from this *    software without prior written permission. For written *    permission, please contact vocal@vovida.org. * * 4. Products derived from this software may not be called "VOCAL", nor *    may "VOCAL" appear in their name, without prior written *    permission of Vovida Networks, Inc. *  * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL VOVIDA * NETWORKS, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES * IN EXCESS OF $1,000, NOR FOR ANY INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. *  * ==================================================================== *  * This software consists of voluntary contributions made by Vovida * Networks, Inc. and many individuals on behalf of Vovida Networks, * Inc.  For more information on Vovida Networks, Inc., please see * <http://www.vovida.org/>. * */static const char* const trivialGateway_cxx_Version =    "$Id: trivialGateway.cxx,v 1.16 2001/01/17 01:52:25 liuhong Exp $";#include "VThread.h"#include <queue>#include <typeinfo>#include <map>#include "MgcGateway.hxx"void*process(void* gateway){    MgcGateway* gw;    //    cout << "entering process loop\n";    gw = static_cast < MgcGateway* > (gateway);    gw->threadProcess();    //    cout << "exiting process loop\n";    return NULL;}intmain (int argc, char* argv[]){    //    char* hostname0 = "localhost";#ifdef __vxworks    int rc = resolvInit ("192.168.5.254", "private.vovida.com", 0);#endif    char* hostname0 = "192.168.5.99";    if (argc > 0)    {        hostname0 = argv[1];    }    MgcGateway gw0 (hostname0, 5050, 5010);    int errNum;    VThread processThread;    errNum = processThread.spawn (process, &gw0);    cout << "starting to create messages" << endl;    //     if (errNum > 0)    //     {    //         cerr << "Cannot create thread: " << strerror (errNum) << endl;    // 	return 0;    //     }    MgcNotificationRequest nr("foo", "50000");    MgcRequestedEvent foo = MgcGenericPackage::requestReportFailure();    foo.addAction(MgcEventAction(MgcpRequestedActionTypeAccumulate));    nr.addRequestedEvents(foo);    MgcRequestedEvent blee = MgcLinePackage::requestOffHookTransition();    blee.addAction(MgcEventAction(MgcpRequestedActionTypeAccumulate));    nr.addRequestedEvents(blee);#if 0    /// create the embedded requested event    MgcRequestedEvent embeddedEvent    = MgcLinePackage::requestOnHookTransition();    embeddedEvent.addAction(MgcEventAction(MgcpRequestedActionTypeNotify));    /// create a signal to send    MgcSignalEvent ringing (MgcLinePackage::signalRingingOn());    /// create a digit map    /// create the full embedded notification request    MgcEmbeddedNotificationRequest embedded;    embedded.addRequestedEvents(embeddedEvent);    embedded.addSignalRequests(ringing);    embedded.setDigitMap("[0-9]");  // 1 digit    /// create the event that will hold this embedded event    MgcRequestedEvent eventWithEmbedded    = MgcLinePackage::requestOnHookTransition();    eventWithEmbedded.addAction(MgcEventAction(embedded));#endif    gw0.send(nr);    MgcCreateConnection x("foo", "1238475", "sendrecv");    MgcpConnectionOptions y;    y.setEchoCancellation(false);    x.setLocalConnectionOptions(y);    cout << "sending...\n";    gw0.send(x);    cout << "done sending...\n";    MgcCreateConnection connection_test_2("foo", "1238475", "sendrecv");    MgcpConnectionOptions connection_option_2;    connection_option_2.setEchoCancellation(true);    connection_test_2.setLocalConnectionOptions(connection_option_2);    cout << "sending...\n";    gw0.send(connection_test_2);    cout << "done sending...\n";#if 0    MgcCommand* cmd = gw0.receive();    switch (cmd->getType())    {        case MgcNotifyType:        {            cerr << "MgcNotifyType\n";            break;        }        default:        {            cerr << "Unexpected command " << cmd->getType() << endl;        }    }#endif    //    exit (0);    return 0;}    /* main */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -