PCBEST NETWORK SIP Software Development Kit(SDK)

You don't have to experience on so many Telecom and Internet protocols and concepts.
The SDK integrated everything for you.

Click here to download SDK v1.65c(With .NET assembly, VB.Net and C# sample code. VB.NET sample is a full-featured SIP phone, just like our SIP ActiveX. An IVR sample - SIPServerApp is added). A new SIP ActiveX control is in this version, which assistants VB6, Delphi and C++ Builder programers to develop SIP applications in just minutes. Music On Hold feature is ready for this version.              

SDK Version History

Samples in SDK:
Simple SIP Phone Sample------ VC++6 and VS2005(VC.NET, VB.NET and C#) samples are included.
SIP ActiveX(OCX) with VB6, C++ Builder 6, and Delphi6 samples------ In OCX sub folder of SDK.
.NET Assembly ------ GTAPIASM project is a C# sample to wrapper unmanaged C API to managed .NET classes
SIP PBX ------ which is the source code of our Production SIP PBX. (VS6 code)
SIP Oubbound Broadcasting Server ------ which can make thousands of SIP calls at once. (VS6 code)
SIP Audio Recording ------ A multipul channels server which can record RTP package into a WAV file.
SIPServerApp ------ In order to help developers who want to use SDK to develop server applications, this sample project is added to show how to "Play Audio", "Record Audio", "Echo Test", "DTMF Detection", "Call Bridge" and "Music on hold". Its source code has two versions: C++ and VB.NET.

Please be noted: The application developed by unregistered SDK can be only running for one hour each time, and each conversation is limited to 3 minutes.

PCBest Network SIP SDK PRICE LIST
6 simultaneous call/voice sessions USD $1000 for unlimited deployment(This licence is only good for softphone applications)
16 simultaneous call/voice sessions USD $320/Server
32 simultaneous call/voice sessions USD $512/Server
64 simultaneous call/voice sessions USD $896/Server
128 simultaneous call/voice sessions USD $1280/Server
Unlimited simultaneous call/voice sessions USD $2000/Server
Please contact us in case of any question.
Note: Prices are subject to change without notice

Click here to buy SIP SDK.

Click here for API Reference for configuration items.
Click here for API Reference for C++ programmers.
Click here for API Reference for .NET programmers.
Click here for API Reference for ActiveX programmers.

Perfermance Table:
CPU and Mem OS Mulaw/Alaw GSM iLBC 30/20 Speex
P3 500Hz with 512Mem Windows 2000 32 Simultaneous Terminated Media Stream, 65% CPU usage 16 Simultaneous Terminated Media Stream, 30% CPU usage 8 Simultaneous Terminated Media Stream, 60% CPU usage 6 Simultaneous Terminated Media Stream, 58% CPU usage

Do you want to know how simple the development of a SIP project would be? See the following C++ code.

Header Code:

#include "GTAPI_Face.h"
#ifdef USE_GTAPI_NAMESPACE
    using namespace GTAPI;
#endif 

class CGTSIPPBXEnv : public CGTAPIEnv        //Derive an enviroment class for your application
{
public:
CGTSIPPBXEnv();
virtual ~CGTSIPPBXEnv();

virtual bool StartServer();
virtual bool StopServer();

virtual void On_RecvConnected(int ch);   //virtual function to overwrite action when a channel is connected

virtual void On_RecvOffered(int ch, const char* sCaller, const char* sCallee, const char* sDestAddr, \ const char* sViaAddr, const char* sFromIP, unsigned short nFromPort);
//virtual function to overwrite action when there is an imcoming call

virtual void On_RecvDialing(int ch, const char* sCaller, const char* sCallee);    //virtual function to overwrite action when strating to dial

virtual void On_RecvIdle(int ch);    //virtual function when call is disconnected, and the status of channel is back to idle
virtual void On_RecvRinging(int ch);    //virtual function when remote side responsed ringing
virtual void On_RecvRegStatus(int user_id, int status, int regtime);    //virtual function when a sip account is successfully registered or unregistered

virtual void On_RecvAudioPlayDone(int ch, int doneReason, const char* dtmfBuffer);  //virtual function to tell the audio is played off
virtual void On_RecvAudioRecordDone(int ch, int doneReason, const char* dtmfBuffer);  //virtual function to tell the recording audio is stopped
virtual void On_RecvAudioStatus(int ch, int resType, int statusCode);    //virtual function to report the audio status

virtual void On_RecvDTMFDone(int ch);  //virtual function to tell DTMF is collected
virtual void On_RecvDTMFKeyDown(int ch, unsigned char keyValue, unsigned long ticks); //virtual function to tell a key is pressed
virtual void On_RecvDTMFKeyUp(int ch, unsigned char keyValue, unsigned long ticks); //virtual function to tell a key is released

};

CPP Code:

CGTSIPPBXEnv::CGTSIPPBXEnv():CGTAPIEnv()
{
//Server SIP and RTP IP address and ports
//CFG_SetValue("gtsrv.sip.ip.address", "");
CFG_SetValue("gtsrv.sip.ip.port", "7812");
CFG_SetValue("gtsrv.sip.rtpstartrange", "22400");
CFG_SetValue("gtsrv.sip.rtpendrange", "22800");

//log info
CFG_SetValue(GTSRV_INI_LOG_LEVEL, "4");
CFG_SetValue(GTSRV_INI_LOG, "c:\\gtsippbx.txt");

//channel info
CFG_SetValue("gtsrv.sip.boardnum.per.server", "1");
CFG_SetValue("gtsrv.sip.spannum.per.board", "2");
CFG_SetValue("gtsrv.sip.channum.per.span", "8");
CFG_SetValue("gtsrv.channel.inbound", "0-3");
CFG_SetValue("gtsrv.channel.outbound", "4-15");

//internal net port to report status of channels
CFG_SetValue(GTSRV_INI_NET_PORT, "9410");

//configuration files
CFG_SetValue(GTSRV_CFG_FILENAME, "GTPBXSrv.ini");
}

CGTSIPPBXEnv::~CGTSIPPBXEnv()
{

}


bool CGTSIPPBXEnv::StartServer()
{
//SIP Account info
CFG_SetValue("gtsrv.sip.reg.client.num", "1");
CFG_SetValue("gtsrv.sip.reg1.displayname", m_sipAccDisplayName);
CFG_SetValue("gtsrv.sip.reg1.username", m_sipAccUserName);
CFG_SetValue("gtsrv.sip.reg1.domain", m_sipAccDomainName);
CFG_SetValue("gtsrv.sip.reg1.proxy", m_sipAccProxyName);
CFG_SetValue("gtsrv.sip.reg1.authorization", m_sipAccAuthName);
CFG_SetValue("gtsrv.sip.reg1.password", m_sipAccPassword);
CFG_SetValue("gtsrv.sip.reg1.expire", "3600");

bool ret = CGTAPIEnv::StartServer();

Send_GetRegStatus(0);

return ret;
}

bool CGTSIPPBXEnv::StopServer()
{
return CGTAPIEnv::StopServer();
}

void CGTSIPPBXEnv::On_RecvConnected(int ch)
{
CGTAPIEnv::On_RecvConnected(ch);
}

void CGTSIPPBXEnv::On_RecvOffered(int ch, const char* sCaller, const char* sCallee, const char* sDestAddr, \
const char* sViaAddr, const char* sFromIP, unsigned short nFromPort)
{
CGTAPIEnv::On_RecvOffered(ch, sCaller, sCallee, sDestAddr, sViaAddr, sFromIP, nFromPort);

/*if(Auto_Answer)*/
    Send_Answer(ch);
}

void CGTSIPPBXEnv::On_RecvDialing(int ch, const char* sCaller, const char* sCallee)
{
CGTAPIEnv::On_RecvDialing(ch, sCaller, sCallee);
}

void CGTSIPPBXEnv::On_RecvIdle(int ch)
{
CGTAPIEnv::On_RecvIdle(ch);
}
void CGTSIPPBXEnv::On_RecvRinging(int ch)
{
CGTAPIEnv::On_RecvRinging(ch);
}

void CGTSIPPBXEnv::On_RecvRegStatus(int user_id, int status, int regtime)
{
CGTAPIEnv::On_RecvRegStatus(user_id, status, regtime);
}

void CGTSIPPBXEnv::On_RecvAudioPlayDone(int ch, int doneReason, const char* dtmfBuffer)
{
}

void CGTSIPPBXEnv::On_RecvAudioRecordDone(int ch, int doneReason, const char* dtmfBuffer)
{
}

void CGTSIPPBXEnv::On_RecvAudioStatus(int ch, int resType, int statusCode)
{
}

void CGTSIPPBXEnv::On_RecvDTMFDone(int ch)
{
}

void CGTSIPPBXEnv::On_RecvDTMFKeyDown(int ch, unsigned char keyValue, unsigned long ticks)
{
}

void CGTSIPPBXEnv::On_RecvDTMFKeyUp(int ch, unsigned char keyValue, unsigned long ticks)
{
}

Please contact us if you have any questions.

 

 
Latest News
PCBest Network LiveTalk Service released.(Sep 25, 2007)

SIP Software Development Kit released.(Aug 28, 2007)

SIP PBX released.(Aug 10, 2007)

SIP ActiveX Control released.(Aug 1, 2007)

pcbest.net is launched.(July 20, 2007)
© Copyright 2007 Pcbest.net All Rights Reserved.