首頁>>CT技術(shù)培訓(xùn)>> SS7在IP網(wǎng)上的發(fā)展趨勢   問題解答 Q&A

 

第五課 一個(gè)基于IP插口的ISUP服務(wù)器例子

上一頁

3. 實(shí)現(xiàn)細(xì)節(jié) 

 

 

所有通信的數(shù)據(jù)包都有一個(gè)固定的格式,其中包括數(shù)據(jù)包的固定頭部和信息載荷。包大小固定為MAX_PSIZE+96。

數(shù)據(jù)包結(jié)構(gòu)定義如下:

typedef struct ISrvPkt_s {

ISrvPktHdr hdr;

U8 payload[MAX_PSIZE];

} ISrvPkt;

數(shù)據(jù)包的頭部結(jié)構(gòu)定義如下:

typedef struct ISrvPktHdr_s {

U16 size;

U16 type;

U32 ctahd;

U32 subtype;

} ISrvPktHdr;

其中:size 為16位的數(shù)據(jù)包有效包大。ò^部)。

Type 為16位的包類型,有2個(gè)值:

SC_DATA ISUP服務(wù)器發(fā)給客戶端的數(shù)據(jù)。

CS_DATA ISUP客戶端發(fā)給服務(wù)器的數(shù)據(jù)。

Ctahd 為32位的CT access句柄。

Subtype 為32位的子類型,目前有2個(gè)值:

ST_INCOMING_CALL 呼入;

ST_OUTGOING_CALL 呼出;

信息載荷有兩類,一為隸屬載荷,它指明信息隸屬的目標(biāo)信令點(diǎn)(DPC)和電路號(CIC)。定義如下:

typedef struct ISrvAttachPayload_s {

U32 CIC;

U32 DPC;

} ISrvAttachPayload;

第二類為號碼載荷,包含呼叫的主被叫號碼,定義如下:

typedef struct ISrvNumbersPayload_s {

char calling_number[MAX_SIZE+1];

char called_number[MAX_SIZE+1];

} ISrvNumbersPayload;

 

Circuit

Sockfd

Ctahd

CIC

DPC

1

5

0x80000001

1

1.1.1

2

6

0x80000002

2

1.1.1

3

7

0x80000003

3

1.1.1

4

8

0x80000001

1

1.1.2

5

9

0x80000002

2

1.1.2

 

4. 如何和ISUP服務(wù)器配合完成呼叫 

DWORD NMSAPI ISUPServerConnect(char *ip_addr,char *logfilename);

DWORD NMSAPI ISUPServerAttach(CTAHD ctahd, unsigned long CIC, unsigned long DPC);

DWORD NMSAPI ISUPServerPlaceCall( CTAHD ctahd, char *calling_num, char *called_num);

DWORD NMSAPI ISUPServerAcceptCall(CTAHD ctahd);

DWORD NMSAPI ISUPServerAnswerCall(CTAHD ctahd);

DWORD NMSAPI ISUPServerReleaseCall(CTAHD ctahd);

DWORD NMSAPI ISUPServerRejectCall(CTAHD ctahd);

DWORD NMSAPI ISUPServerReset(CTAHD ctahd);

DWORD NMSAPI ISUPServerBlockCalls(CTAHD ctahd);

DWORD NMSAPI ISUPServerUnblockCalls(CTAHD ctahd);

 

 

 

 

 

5. 技術(shù)提示

通過插口發(fā)送數(shù)據(jù)之前和接收數(shù)據(jù)之后,要調(diào)用ntohs( ), ntohl( ), htons( ), htonl( )函數(shù)來轉(zhuǎn)換高低字節(jié)順序。

6. 結(jié)論

   現(xiàn)在讓我們總結(jié)一下上面實(shí)現(xiàn)的ISUP服務(wù)器:

   首先,它是一個(gè)建立在NMS SS7支持的ISUP協(xié)議層基礎(chǔ)上的多線程服務(wù)器。它提供了基于TCP協(xié)議插口的API函數(shù)。它是跨平臺的,同時(shí)支持Solaris和NT。

   但是,這個(gè)服務(wù)器只支持ISUP協(xié)議,不支持SS7中其它協(xié)議層。它只是一個(gè)演示程序,沒有經(jīng)過完整的測試,不夠強(qiáng)壯。程序中用到的API函數(shù)(ISUPxxxx)也不是NMS SS7提供的標(biāo)準(zhǔn)API函數(shù)。

   另外,是使用TCP還是使用UDP的問題,也沒有經(jīng)過論證,有待實(shí)踐中作進(jìn)一步確定。


相關(guān)資源

  1. IETF(因特網(wǎng)工程任務(wù)組)網(wǎng)站:www.ietf.org

  2. IETF是開發(fā)SS7/IP標(biāo)準(zhǔn)的主要組織,Sigtran組是專門從事SS7/IP開發(fā)的。

    Rfc2960:這是SCTP協(xié)議的詳細(xì)說明書。

    draft-ietf-sigtran-m3ua-10:這是MTP3用戶適應(yīng)層協(xié)議。

  3. 介紹SS7/IP有關(guān)知識及產(chǎn)品:www.ss7oip.com

  4. SS7/IP有關(guān)新聞:www.intellinet-tech.com/news

  5. 附相關(guān)書籍:

<<rfc2960>>;

<<draft-ietf-sigtran-m3ua-10>>;

<<tutorial_ss7_ip_interworking>>;

 

首頁>>CT技術(shù)培訓(xùn)>> SS7在IP網(wǎng)上的發(fā)展趨勢   問題解答 Q&A