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

📄 tclient2.cxx

📁 SIP(Session Initiation Protocol)是由IETF定义
💻 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 tClient2_cxx_Version =    "$Id: tClient2.cxx,v 1.11.32.1 2003/01/22 18:07:02 sprajpat Exp $";#include <sys/socket.h>#include <netinet/in.h>#include <unistd.h>#include <stdio.h>#include <arpa/inet.h>#include <string.h>#include <iostream.h>#include <fstream.h>#include <string>#include <algo.h>#include "ProvisionInterface.hxx"#include "VException.hxx"#include "VNetworkException.hxx"#include "VFile.hxx"#include "VFileBrowser.hxx"#include "VEnvVar.hxx"#include "cpLog.h"voiddoQuery(){    //    cpLogSetPriority (LOG_DEBUG);    try     {    const char* rSecret = "/usr/local/vocal/etc/vocal.secret";    const char* wSecret = "/usr/local/vocal/etc/vocal.writesecret";    ProvisionInterface& pif =        ProvisionInterface::instance("sprajpat-lnx2", 6005,                                     "sprajpat-lnx2", 6005, rSecret, wSecret);    vector < Data > retList;/*        cerr << "**Get marshal servers:" << endl;    pif.getMarshalServers(retData);    for(list<string>::iterator itr = retData.begin();        itr != retData.end(); itr++){        cerr << (*itr) << endl;}    cerr << "**Get feature servers:" << endl;    pif.getFeatureServers(retData);    for(list<string>::iterator itr = retData.begin();        itr != retData.end(); itr++){        cerr << (*itr) << endl;}    cerr << "**Get redirect servers:" << endl;    pif.getRedirectServers(retData);    for(list<string>::iterator itr = retData.begin();        itr != retData.end(); itr++){        cerr << (*itr) << endl;}    cerr << "**Get Cdr servers:" << endl;    pif.getCdrServers(retData);    for(list<string>::iterator itr = retData.begin();        itr != retData.end(); itr++){        cerr << (*itr) << endl;}    cerr << "**Get Jtapi servers:" << endl;    pif.getJtapiServers(retData);    for(list<string>::iterator itr = retData.begin();        itr != retData.end(); itr++){        cerr << (*itr) << endl;}    */    /*                 cerr << "-------------------" << endl;                 cerr << "$$ Redirect" << endl;            VRedirectServerData myRedirect;            pif.getRedirectData("192.168.26.120:5230", myRedirect);            cout << myRedirect << endl;                 cerr << "$$ Cdr" << endl;            VCdrServerData myCdr;            pif.getCdrData("192.168.26.230:5073", myCdr);            cout << myCdr << endl;                 cerr << "$$ Feature" << endl;            VFeatureServerData myFeature;            pif.getFeatureData("192.168.26.110:5070", myFeature);            cout << myFeature << endl;                 cerr << "$$ Marshal" << endl;            VMarshalServerData myMarshal;            pif.getMarshalData("192.168.26.110:5060", myMarshal);            cout << myMarshal << endl;                        cerr << "$$ Jtapi" << endl;            VJtapiServerData myJtapi;            pif.getJtapiData("192.168.26.110:5070:5071", myJtapi);            cout << myJtapi << endl;         */    /*            while (1) {            cerr << "**Get global data:" << endl;            VGlobalConfigData retDataA;            pif.getConfigData(retDataA);            cerr << retDataA;            cerr << "\n\n\n\n" << endl;            sleep(5);            }         */    /*    cerr << "-------------------" << endl;    vector<VPlanElement> retData0;    pif.getDialPlan("defaultPhonePlan.xml", retData0);    for(vector<VPlanElement>::iterator itr = retData0.begin();        itr != retData0.end(); itr++){       cerr << (*itr) << endl;}    cerr << "-------------------" << endl;    cerr << "Get groups" << endl;    list<string> daList;    cerr << "Jtapi" << endl;    pif.getJtapiGroups(daList);    for (list<string>::iterator itr4 = daList.begin();         itr4 != daList.end(); itr4++){        cerr << (*itr4) << endl;}    cerr << "Marshal" << endl;    pif.getMarshalGroups(daList);    for (list<string>::iterator itr4 = daList.begin();         itr4 != daList.end(); itr4++){        cerr << (*itr4) << endl;}    cerr << "Cdr" << endl;    pif.getCdrGroups(daList);    for (list<string>::iterator itr4 = daList.begin();         itr4 != daList.end(); itr4++){        cerr << (*itr4) << endl;}    cerr << "Feature" << endl;    pif.getFeatureGroups(daList);    for (list<string>::iterator itr4 = daList.begin();         itr4 != daList.end(); itr4++){        cerr << (*itr4) << endl;}    */    /*            cerr << "Getting forsip servers" << endl;            MapOfServerGroups foo = pif.getMarshalServers();                 GroupMap &foo3 = foo[string("SIP")];            list<string> foo2 = foo3[string("forsip")];            for(list<string>::iterator itr = foo2.begin(); itr != foo2.end(); itr++)                    cout << (*itr) << endl;                 cerr << "**Get ForwardAllCallsGroup" << endl;            vector<Data>fooe;            pif.getMarshalServerGroup("mshost:8061", fooe);            cout << fooe.size() << endl;            for(vector<Data>::iterator itr = fooe.begin();                              itr != fooe.end(); itr++)            {               cerr << (*itr).getData() << endl;            }                 cerr << "*** Getting one server" << endl;                        VMarshalServerData myMarshall;            string marshalname = "192.168.5.15:8061";            pif.getMarshalData(marshalname, myMarshall);            cout << myMarshall << endl;                 cerr << "*** Getting list of servers" << endl;                        vector<VMarshalServerData> myMarshals;            pif.getMarshalServers(myMarshals);            for(vector<VMarshalServerData>::iterator itr = myMarshals.begin();                              itr != myMarshals.end(); itr++)            {               cerr << (*itr) << endl;            }                 */    /*    cerr << "**2" << endl;    vector<VMarshalServerData> retData7;    pif.getMarshalServers(retData7);    vector<VMarshalServerData>::iterator itr = retData7.begin();    if (itr == NULL)        cerr << "NULL!" << endl;    cerr << "**3" << endl;    for(vector<VMarshalServerData>::iterator itr = retData7.begin();                      itr != retData7.end(); itr++){       cerr << (*itr) << endl;}    */    /*    cerr << "*** " << "Getting Data" << endl;    VMarshalServerData vData;    cerr << "*** " << endl;    pif.getMarshalData("SIP", vData);    cerr << "*** " << vData << endl;    */#if 1    /*    cerr << "**Get feature servers:" << endl;    vector<Data> retData4;    pif.getFeatureServers(retData4);    //        MapOfServerGroups foo = pif.getFeatureServers();    cout << retData4.size() << endl;    for(vector<Data>::iterator itr = retData4.begin();                      itr != retData4.end(); itr++){       cerr << (*itr).getData() << endl;}    cerr << "**Get feature servers:" << endl;    //        vector<Data> retData4;    //        pif.getFeatureServers(retData4);    MapOfServerGroups foo = pif.getFeatureServers();    GroupMap &foo3 = foo[string("ForwardAllCalls")];    list<string> foo2 = foo3[string("ForwardAllCallsGroup")];    for(list<string>::iterator itr = foo2.begin(); itr != foo2.end(); itr++)            cout << (*itr) << endl;    cerr << "**Get ForwardAllCallsGroup" << endl;    vector<Data>fooe;    pif.getFeatureServerGroup("192.168.10.30:7062", fooe);    cout << fooe.size() << endl;    for(vector<Data>::iterator itr = fooe.begin();                      itr != fooe.end(); itr++){       cerr << (*itr).getData() << endl;}    */        cerr << "**Get marshal servers:" << endl;    list<string> retData3;    pif.getMarshalServers(retData3);    list<string>::iterator itr2 = retData3.begin();    if (itr2 == NULL)        cerr << "NULL!" << endl;    for(list<string>::iterator itr = retData3.begin();                      itr != retData3.end(); itr++){       cerr << (*itr).c_str() << endl;}        /*    cerr << "**Get Phone dial plan" << endl;    vector<VPlanElement> retData5 = pif.getDialPlan("defaultPhonePlan.xml");    for(vector<VPlanElement>::iterator itr = retData5.begin();                      itr != retData5.end(); itr++){       cerr << (*itr) << endl;}    cerr << "**Get IP dial plan" << endl;    vector<VPlanElement> retData6 = pif.getDialPlan("defaultIpPlan.xml");    for(vector<VPlanElement>::iterator itr = retData6.begin();                      itr != retData6.end(); itr++){       cerr << (*itr) << endl;}    */    string ipaddr = pif.getUserIp("1000");    cerr << "User :" << "1000" << " IP:" << ipaddr << endl;#endif    }    catch(VException& e)    {        cerr << "Exception:" << e.getDescription().c_str() << endl;        exit(0);    }}intmain(int argc, char** argv){    while(1)    {        doQuery();        sleep(2);    }    exit(0);}

⌨️ 快捷键说明

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