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

📄 iptdevice.cpp

📁 Conferencing code using Dialogic hardware
💻 CPP
📖 第 1 页 / 共 4 页
字号:
/**********@@@SOFT@@@WARE@@@COPY@@@RIGHT@@@**********************************
* DIALOGIC CONFIDENTIAL
*
* Copyright (C) 2006-2007 Dialogic Corporation. All Rights Reserved.
* The source code contained or described herein and all documents related
* to the source code ("Material") are owned by Dialogic Corporation or its
* suppliers or licensors. Title to the Material remains with Dialogic Corporation
* or its suppliers and licensors. The Material contains trade secrets and
* proprietary and confidential information of Dialogic or its suppliers and
* licensors. The Material is protected by worldwide copyright and trade secret
* laws and treaty provisions. No part of the Material may be used, copied,
* reproduced, modified, published, uploaded, posted, transmitted, distributed,
* or disclosed in any way without Dialogic's prior express written permission.
*
* No license under any patent, copyright, trade secret or other intellectual
* property right is granted to or conferred upon you by disclosure or delivery
* of the Materials, either expressly, by implication, inducement, estoppel or
* otherwise. Any license under such intellectual property rights must be
* express and approved by Dialogic in writing.
*
***********************************@@@SOFT@@@WARE@@@COPY@@@RIGHT@@@**********/
//***********************************************************************
//***********************************************************************
// IptDevice.cpp: implementation of the CIptDevice class.
//
//////////////////////////////////////////////////////////////////////
#define PRINT_VERSION

#include <time.h>
#include "pdl.h"

/*
  1.The 8kHz PCMU codec (payload type 0)
  2.The 8kHz 1016 codec (payload type 1)
  3.The 8kHz G726-32 codec (payload type 2)
  4.The 8kHz GSM codec (payload type 3)
  5.The 8kHz G723 codec (payload type 4)
  6.The 8kHz DVI4 codec (payload type 5)
  7.The 16kHz DVI4 codec (payload type 6)
  8.The 8kHz LPC codec (payload type 7)

  9.The 8kHz PCMA codec (payload type 8)

 10.The 8kHz G722 codec (payload type 9)
 11.The 44.1kHz stereo L16 codec (payload type 10)
 12.The 44.1kHz mono L16 codec (payload type 11)
 13.The 8kHz QCELP codec (payload type 12)
 14.The 8kHz CN codec (payload type 13)
 15.The MPA codec (payload type 14)
 16.The 8kHz G728 codec (payload type 15)
 17.The 11.025kHz DVI4 codec (payload type 16)
 18.The 22.050kHz DVI4 codec (payload type 17)
 19.The 8kHz G729 codec (payload type 18)
*/

// translate coder to standard payload type
static int standard_payload_type(int coder){
 int pl = 0;
    switch(coder){
        case CODER_TYPE_G711ULAW64K:	
        case CODER_TYPE_G711ULAW56K:
             pl = 0;
             break;

        case CODER_TYPE_G711ALAW64K:
        case CODER_TYPE_G711ALAW56K:
             pl = 8;
             break;
        case CODER_TYPE_G729:
             pl = 18;
             break;
    }    
 return pl;

}


//*****************************************************************************
// Purpose	: 
//    return parmid and setid name 
// Parameters:	
//    setid, parmid and holders for names
// Returns:	
//    true = both are found
//*****************************************************************************
bool ip_get_setid_name(int set_id, int parm_id,
                       const char **setid_name,
                       const char **parmid_name,
                       DATA_TYPE *dtype){
*setid_name = "";
*parmid_name = "";
bool brc = true;
   switch (set_id){
        case IPSET_CALLINFO:
            *setid_name = "IPSET_CALLINFO";
            switch(parm_id){
                case IPPARM_CONNECTIONMETHOD:
                     *dtype = DATA_CHAR;
                     *parmid_name = "IPPARM_CONNECTIONMETHOD";
                     break;

                case IPPARM_CALLID:
                     *dtype = DATA_OCTETS;
                     *parmid_name = "IPPARM_CALLID";
                     break;

                case IPPARM_DISPLAY:
                     *dtype = DATA_STRING;
                     *parmid_name = "IPPARM_DISPLAY";
                     break;

                case IPPARM_FASTSTART_MANDATORY_H245CH:
                     *dtype = DATA_CHAR;
                     *parmid_name = "IPPARM_FASTSTART_MANDATORY_H245CH";
                     break;

                case IPPARM_H245TUNNELING:
                     *dtype = DATA_CHAR;
                     *parmid_name = "IPPARM_H245TUNNELING";
                     break;

                case IPPARM_USERUSER_INFO:
                     *dtype = DATA_STRING;
                     *parmid_name = "IPPARM_USERUSER_INFO";
                     break;

                case IPPARM_PHONELIST:
                     *dtype = DATA_STRING;
                     *parmid_name = "IPPARM_PHONELIST";
                     break;

                case IPPARM_PROGRESS_IND:
                     *dtype = DATA_STRING;
                     *parmid_name = "IPPARM_PROGRESS_IND";
                     break;

                case IPPARM_PRESENTATION_IND:
                     *dtype = DATA_CHAR;
                     *parmid_name = "IPPARM_PRESENTATION_IND";
                     break;

                case IPPARM_MEDIAWAITFORCONNECT:
                     *dtype = DATA_CHAR;
                     *parmid_name = "IPPARM_MEDIAWAITFORCONNECT";
                     break;

                case IPPARM_OFFERED_FASTSTART_CODER:
                     *dtype = DATA_STRUCT;
                     *parmid_name = "IPPARM_OFFERED_FASTSTART_CODER";
                     break;
            }
            break;

        case IPSET_SIP_MSGINFO:
            *setid_name = "IPSET_SIP_MSGINFO";
            switch (parm_id) {   
                case IPPARM_REQUEST_URI:
                     *parmid_name = "IPPARM_REQUEST_URI";
                     *dtype = DATA_STRING;
                     break;

                case IPPARM_CONTACT_URI:
                     *dtype = DATA_STRING;
                     *parmid_name = "IPPARM_CONTACT_URI";
                     break;

                case IPPARM_FROM_DISPLAY:
                     *dtype = DATA_STRING;
                     *parmid_name = "IPPARM_FROM_DISPLAY";
                     break;

                case IPPARM_TO_DISPLAY:
                     *dtype = DATA_STRING;
                     *parmid_name = "IPPARM_TO_DISPLAY";
                     break;

                case IPPARM_CONTACT_DISPLAY:
                     *dtype = DATA_STRING;
                     *parmid_name = "IPPARM_CONTACT_DISPLAY";
                     break;

                case IPPARM_REFERRED_BY:
                     *dtype = DATA_STRING;
                     *parmid_name = "IPPARM_REFERRED_BY";
                     break;

                case IPPARM_REPLACES:
                     *dtype = DATA_STRING;
                     *parmid_name = "IPPARM_REPLACES";
                     break;

                case IPPARM_CONTENT_DISPOSITION:
                     *dtype = DATA_STRING;
                     *parmid_name = "IPPARM_CONTENT_DISPOSITION";
                     break;

                case IPPARM_CONTENT_ENCODING:
                     *dtype = DATA_STRING;
                     *parmid_name = "IPPARM_CONTENT_ENCODING";
                     break;

                case IPPARM_CONTENT_LENGTH:
                     *dtype = DATA_STRING;
                     *parmid_name = "IPPARM_CONTENT_LENGTH";
                     break;

                case IPPARM_CONTENT_TYPE:
                     *dtype = DATA_STRING;
                     *parmid_name = "IPPARM_CONTENT_TYPE";
                     break;

                case IPPARM_REFER_TO:
                     *dtype = DATA_STRING;
                     *parmid_name = "IPPARM_REFER_TO";
                     break;

                case IPPARM_DIVERSION_URI:
                     *dtype = DATA_STRING;
                     *parmid_name = "IPPARM_DIVERSION_URI";
                     break;

                case IPPARM_EVENT_HDR:
                     *dtype = DATA_STRING;
                     *parmid_name = "IPPARM_EVENT_HDR";
                     break;

                case IPPARM_EXPIRES_HDR:
                     *dtype = DATA_STRING;
                     *parmid_name = "IPPARM_EXPIRES_HDR";
                     break;

                case IPPARM_CALLID_HDR:
                     *dtype = DATA_STRING;
                     *parmid_name = "IPPARM_CALLID_HDR";
                     break;

                case IPPARM_SIP_HDR:
                     *dtype = DATA_STRING;
                     *parmid_name = "IPPARM_SIP_HDR";
                     break;

                case IPPARM_FROM:
                     *dtype = DATA_STRING;
                     *parmid_name = "IPPARM_FROM";
                     break;

                case IPPARM_TO:
                     *dtype = DATA_STRING;
                     *parmid_name = "IPPARM_TO";
                     break;

                default:
                    brc = false;
                    break;
            } // switch parm_id
            break;
		case IPSET_SDP:
            *setid_name = "IPSET_SDP";
            switch (parm_id) {   
                case IPPARM_SDP_OFFER:
                     *parmid_name = "IPPARM_SDP_OFFER";
                     *dtype = DATA_STRING;
                     break;

                case IPPARM_SDP_ANSWER:
                     *parmid_name = "IPPARM_SDP_ANSWER";
                     *dtype = DATA_STRING;
                     break;

                case IPPARM_SDP_OPTION_OFFER:
                     *parmid_name = "IPPARM_SDP_OPTION_OFFER";
                     *dtype = DATA_STRING;
                     break;

                case IPPARM_SDP_OPTION_ANSWER:
                     *parmid_name = "IPPARM_SDP_OPTION_ANSWER";
                     *dtype = DATA_STRING;
                     break;

                default:
                    brc = false;
                    break;
			} // IPSET_SIP switch
			break;
        default: 
            brc = false;
            break;
    } // switch set_id
 return brc;
} // End of ip_get_setid_name 


//*****************************************************************************
// Purpose	: 
//    dump parm block
// Parameters:	
//   [in] parm
// Returns:	
//    none
//*****************************************************************************
void CIptDevice::dump_parm(GC_PARM_DATA_EXT *parm){
    // process parameter
  const char *setid_name;
  const char *parmid_name;
  DATA_TYPE dtype;
  switch(parm->data_size){
       default:
            dtype = DATA_NONE;
            break;

       case 1:
            dtype = DATA_CHAR;
            break;

       case 2:
            dtype = DATA_USHORT;
            break;

       case 4:
            dtype = DATA_UINT;
            break;
  }

  ip_get_setid_name( parm->set_ID, parm->parm_ID,
                     &setid_name, &parmid_name,
                     &dtype);
        
  LOG( LOG_DBG, GetName(), 
                "  set_ID = 0x%x, %s",
                parm->set_ID, setid_name);     

  LOG( LOG_DBG, GetName(), 
                "  parm_ID = 0x%x %s",
                 parm->parm_ID, parmid_name);     

  unsigned int data;                                      

      switch(dtype){
           default:
                LOG( LOG_DBG, GetName(), 
                    "  data_size = %d, value_buf[]",
                    parm->data_size);
                break;
           case DATA_CHAR:
           case DATA_UCHAR:
                data = *(unsigned char *)parm->pData;
                LOG( LOG_DBG, GetName(), 
                    "  data_size = %d, value = 0x%x",
                    parm->data_size, data);
                break;
           case DATA_SHORT:
           case DATA_USHORT:
                data = *(unsigned short *)parm->pData;
                LOG( LOG_DBG, GetName(), 
                    "  data_size = %d, value = 0x%x",
                    parm->data_size, data);
                break;
           case DATA_INT:
           case DATA_UINT:
                data = *(unsigned int *)parm->pData;
                LOG( LOG_DBG, GetName(), 
                    "  data_size = %d, value = 0x%x",
                    parm->data_size, data);
                break;

           case DATA_STRING:
               { char buffer[512];
                 unsigned int len = parm->data_size;
                 if (len > sizeof(buffer)-1){
                     len = sizeof(buffer) -2;
                     buffer[len-1] = '.';
                     buffer[len-2] = '.';
                 }
                 if (len) {
                    memmove(buffer, parm->pData, len);
                 }
                 buffer[len]=0;
                 LOG( LOG_DBG, GetName(), 
                    "  data_size = %d, value = \n%s",
                    parm->data_size, buffer);
               }
                break;
      }
 return;
}

//*****************************************************************************
// Class CnfDemoResourceList
//*****************************************************************************
static const char *s_reslist = "ResourceList";
static NAME_TABLE res_table[] = {
    { "RESOURCE_TYPE_NONE",            RESOURCE_TYPE_NONE } ,
    { "RESOURCE_IPM_LBR",              RESOURCE_IPM_LBR },
    { "RESOURCE_IPM_ALL_AUDIO_CODERS", RESOURCE_IPM_ALL_AUDIO_CODERS },
    { "RESOURCE_IPM_G711_40MS",        RESOURCE_IPM_G711_40MS },
    { "RESOURCE_IPM_G711_30MS",        RESOURCE_IPM_G711_30MS },
    { "RESOURCE_IPM_G711_20MS",        RESOURCE_IPM_G711_20MS },
    { "RESOURCE_IPM_G711_10MS",        RESOURCE_IPM_G711_10MS },
    { "RESOURCE_IPM_G723",             RESOURCE_IPM_G723 },
    { "RESOURCE_IPM_G726",             RESOURCE_IPM_G726 },
    { "RESOURCE_IPM_G729",             RESOURCE_IPM_G729 },
    { "RESOURCE_IPM_AMR_NB",           RESOURCE_IPM_AMR_NB },
    { "RESOURCE_IPM_EVRC",             RESOURCE_IPM_EVRC },
    { "RESOURCE_IPM_GSM_EFR",          RESOURCE_IPM_GSM_EFR },
    { "RESOURCE_IPM_ILBC",             RESOURCE_IPM_ILBC },
    { "RESOURCE_IPM_QCELP",            RESOURCE_IPM_QCELP },
    { "RESOURCE_IPM_SMV",              RESOURCE_IPM_SMV },
    { "RESOURCE_IPM_AMR_WB",           RESOURCE_IPM_AMR_WB },
    { "RESOURCE_IPM_G729E",            RESOURCE_IPM_G729E },
    { "RESOURCE_TYPE_MAX",             RESOURCE_TYPE_MAX },
    { 0,0 }
};

CnfDemoResourceList::CnfDemoResourceList(){
	version = DEV_RESOURCE_LIST_VERSION;
    count = 0;
    memset(&rsList,0,sizeof(rsList));
    m_type = RESERVE_RESOURCE_NONE;
};

void CnfDemoResourceList::Dump(CGenLog *pLog){
    const char *name =  get_reserve_resource_name(m_type);
    pLog->Log(LOG_DBG, s_reslist,"version = 0x%x", version);
    pLog->Log(LOG_DBG, s_reslist,"count   = %d", count);
    pLog->Log(LOG_DBG, s_reslist,"type    = %d %s", m_type, name);
    
    int inx;
    for(inx=0; inx < count; inx++){
        str_findname(rsList[inx], &name, res_table);
        pLog->Log(LOG_DBG, s_reslist,"   %d %s", rsList[inx],name);
    }
};

⌨️ 快捷键说明

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