Xớy dỷơng mõy traơng thõi

Một phần của tài liệu cong_nghe_dien_thoai_ip (Trang 97 - 102)

Chỷỳng 4 : Xớy dỷơng phớỡn mùỡm xỷờ lđ cơc goơi cho gateway

3. Xớy dỷơng mõy traơng thõi

Chỷỳng trịnh xỷờ lđ cơc goơi ặỳơc xớy dỷơng dỷơa trùn nùỡn tăng lađ cõc traơng thõi cơc goơi. Mươt cơc goơi lađ sỷơ liùn laơc ăa phỷỳng tiùơn giỷơa hai ăiùớm cịi. Cơc goơi ặỳơc bựưt ăớỡu vỳõi th tuơc thiùịt lớơp cơc goơi vađ kùịt thũc vỳõi thuờ tuơc giăi phụng cơc goơi. Traơng thõi cơc goơi lađ mươt giai ăoaơn ặỳơc ắnh nghơa r rađng trong sịt thỳđi gian xăy ra cuửơc goơi.

Mưỵi cơc goơi cụ xu hỷỳõng duy trị traơng thõi hiùơn taơi vađ chú chớn sang traơng thõi mỳõi khi nhớơn ặỳơc nhỷơng băn tin mong muửịn.

Mưỵi traơng thõi ca cơc goơi s cụ tỷỳng ỷõng mửơt hađm state machine. Hađm nađy s ặỳơc goơi ăùớ xỷờ lđ sỷơ kiùơn nhớơn ặỳơc. Khi kùnh chớn sang traơng thõi mỳõi, hađm state machine ca nụ cng thay ăưới.

Cuửơc goơi tỷđ maơng PSTN vađo

GATE_INIT: Ăớy lađ traơng thõi mađ ỷõng duơng chỷa khỳời taơo cãc component vađ cõc thùớ hiùơn cuờa component cuờa cãc tađi nguýn.

WAIT_FOR_CALL: Ăớy lađ traơng thõi mađ ỷõng duơng ă khỳời taơo xong cõc component vađ cõc thùớ hiùơn ca component, ăựng kđ cõc message vỳõi firmware. Lũc nađy kùnh ỳờ traơng thãi sựĩn sađng nhớơn cơc goơi. Khi cụ cơc goơi ăùịn tỷđ phđa PSTN, ỷõng duơng nhớơn ặỳơc sỷơ kiùơn DTI_OFF_HOOK, nõ s kiùớm tra traơng thõi hiùơn taơi ca kùnh:

Nùịu kùnh bớơn thị nụ s tỷđ chưịi cơc goơi bựỡng cõch gỷời Tone bõo bớơn cho maơng PSTN.

Nùịu kùnh rưỵi, nụ mỳờ kùnh thửng tin ăùịn maơng PSTN, thỷơc hiùơn kùịt nưịi kùnh thưng tin thoaơi giỷơa PSTN vađ NetTSCCluster vađ gỷời message TSC_MsgMakeCall ăùịn NetTSC component ăùớ thiùịt lớơp cơc goơi sang phđa IP. Traơng thõi tiùịp theo lađ WAIT_FOR_CONNECT.

WAIT_FOR_CONNECT: Lc nađy, kùnh ăang chỳđ phđa IP tră lỳđi.

Nùịu ỷõng duơng nhớơn ặỳơc message

TSC_EvtCallState_Type_Failed cho biùịt viùơc kùịt nưịi cơc goơi phđa IP thớịt baơi (cụ thùớ do khưng ăng ắa chú, húơc do chớn m hõ khưng phuđ hỳơp). Nụ thỷơc hiùơn viùơc giăi phụng cơc goơi bựỡng cõch gỷời ăi message TSC_MsgDropCall vađ kùnh chuýớn sang traơng thãi WAIT_FOR_IDLE.

Nùịu nhớơn ặỳơc message TSC_EvtCallState_Type_Connected cho biùịt ýu cớỡu kùịt nưịi ă ặỳơc chớịp nhớơn, kùnh chớn sang traơng thõi kùịt nưịi WAIT_FOR_DISCONNECT.

WAIT_FOR_DISCONNECT: Ăớy lađ traơng thõi mađ cơc goơi ă ặỳơc kùịt nưịi thađnh cưng, hai bùn ăang trao ăưới cõc thưng tin thoaơi vỳõi nhau. Lũc nađy, nùịu mửơt trong hai bùn thỷơc hiùơn thuờ tuơc kùịt thũc

WAIT_FOR_CALL GATE_INIT

WAIT_FOR_CONNECT

WAIT FOR IDL

WAIT_FOR_RELEAS PSTN_RELEASE WAIT_DONE NetTSC: TSC_EvtCallState_Type_Null PSTN đà gỏc mỏy PSTN: DIGITAL_ON_HOOK hoƯc NetTSC: PSTN: NetTSC: PSTN: DIGITAL_ON_HOOK hoƯc NetTSC: TSC_EvtCallState_Type_Failed NetTSC: TSC_EvtCallState_Type_Idled NetTSC: PSTN: DIGITAL_ON_HOOK NetTSC: TSC_EvtCallState_Type_Null PSTN đã gác máy NetTSC: NetTSC:

cơc goơi, ỷõng duơng nhớơn ặỳơc sỷơ kiùơn DTI_ON_HOOK tỷđ phủa PSTN húơc message tỷđ NetTSC, nụ s thỷơc hiùơn viùơc cựưt kùịt nưịi thoaơi giỷơa hai bùn, thiùịt lớơp traơng thõi kùnh PSTN lùn on hook (giăi phưng kùịt nưịi PSTN) vađ gỷời ăùịn NetTSC message TSC_MsgDropCall ăùớ huyờ boờ kùịt nưịi phđa IP. Traơng thõi tiùịp theo cuờa kùnh lađ WAIT_FOR_IDE.

WAIT_FOR_IDLE: Firmware ăang thỷơc hiùơn viùơc giăi phụng kùịt nửịi vỳõi bùn IP. Khi ăaụ thỷơc hiùơn xong viùơc huyờ boờ kùịt nửịi, NetTSC s bõo cho ỷõng duơng bựỡng message TSC_EvtCallState_Type_Idled. Lũc nađy mựơc duđ kùịt nưịi vỳõi phđa IP ă ặỳơc giăi phụng nhỷng cõc tađi ngn trong firmware vớỵn chỷa ặỳơc giăi phụng, cõc thưng tin vùỡ cơc goơi vớỵn cụ thùớ ặỳc sỷờ duơng. Ăùớ thưịng kù cơc goơi băn tin TSC_MsgGetCallInfo ặỳơc gỷời ăi ăùịn NetTSC. NetTSC traờ lỳđi bựỡng băn tin TSC_MsgGetCallInfoCmplt cụ chỷõa cõc thưng tin thưịng kù cơc goơi nhỷ: thỳđi gian, sưị gụi tin trỡn ăi, nhớơn ặỳơc, sưị gụi tin bừ mớịt...

Sau khi ă lớịy thưng tin thưịng kù cuửơc goơi, ỷõng duơng gỷời ăùịn NetTSC message TSC_MsgReleaseCall ýu cớỡu firmware giăi phụng tađi nguýn, traơng thãi tiùịp theo lađ WAIT_FOR_RELEASE.

WAIT_FOR_RELEASE: Ăớy lađ traơng thãi mađ ỷõng duơng ăang chỳđ cho firmware giăi phụng tađi ngn liùn quan ăùịn cuửơc goơi. Khi firmware giăi phụng xong tađi ngn, nụ thưng bõo cho ỷõng duơng biùịt bựỡng message TSC_EvtCallState_Type_Null. Lc nađy cụ hai khă nựng xaờy ra:

Nùịu cơc goơi kùịt thc lađ do phđa PSTN ýu cớỡu, do ăụ phđa PSTN lc nađy ă hoađn toađn ặỳơc giăi phụng, vị vớơy ỷõng duơng thỷơc hiùơn thiùịt lớơp laơi cõc giõ trừ ban ăớỡu cho cớịu trc Dm3NetTSC vađ chuýớn sang traơng thõi WAIT_FOR_CALL sựĩng sađng nhớơn cơc goơi tiùịp theo.

Nùịu cơc goơi lađ do phđa IP ýu cớỡu kùịt thc, lũc nađy kùnh phaời chỳđ cho phđa PSTN giăi phụng, traơng thõi tiùịp theo ca kùnh lađ PSTN_RELEASE.

PSTN_RELEASE: Nùịu kùnh nhớơn ặỳơc tđn hiùơu gõc mõy tỷđ phđa PSTN, nụ chớn sang traơng thõi WAIT_FOR_CALL chỳđ cơc goơi tiùịp theo. Tuy nhiùn trong traơng thõi nađy, kùnh cng cụ thùớ nhớơn

ặỳơc ýu cớỡu thiùịt lớơp cơc goơi tỷđ bùn IP. Lc ăụ nụ phăi chớn tỷđ chưịi cơc goơi vađ chớn sang traơng thõi WAIT_DONE ăùớ chỳđ cho firmware giăi phụng tađi nguýn cuửơc goơi vỷđa mỳõi bừ tỷđ chửịi.

WAIT_DONE: Khi tađi nguýn cuửơc goơi ă ặỳơc giăi phụng, kùnh s nhớơn ặỳơc băn tin TSC_EvtCallState_Type_Null. Lc ăụ nụ phăi kiùớm tra liùơu phđa PSTN ă gõc mõy hay chỷa (sỷờ duơng mươt biùịn waitOnHook kiùớu BOOL cho mưỵi kùnh ăùớ kùớm tra), nùịu rưỡi thị traơng thãi tiùịp theo lađ WAIT_FOR_CALL, ngỷỳơc laơi trỳờ vùỡ traơng thõi PSTN_RELEASE.

Cuửơc goơi tỷđ maơng IP vađo

GATE_INIT: Ăớy lađ traơng thõi mađ ỷõng duơng chỷa khỳời taơo cãc component vađ cãc thùớ hiùơn cuờa component cuờa cõc tađi ngn.

WAIT_FOR_CALL: Ăớy lađ traơng thõi mađ ỷõng duơng ă khỳời taơo xong cõc component vađ cõc thùớ hiùơn ca component, ăựng kđ cõc message vỳõi firmware. Lũc nađy kùnh ỳờ traơng thãi sựĩn sađng nhớơn cơc goơi. Khi cụ cơc goơi ăùịn tỷđ phđa IP, ỷõng duơng nhớơn ặỳơc message TSC_EvtCallState_Type_Offer, nụ s kiùớm tra traơng thõi hiùơn taơi cuờa kùnh:

Nùịu kùnh bớơn thị nụ s tỷđ chưịi cơc goơi bựỡng cãch gỷời message TSC_MsgRejectCall ăùịn NetTSC component. Traơng thãi tiùịp theo cuờa kùnh lađ WAIT_FOR_IDLE.

Nùịu kùnh rưỵi nụ gỷời message TSC_MsgGetCallInfo ăùịn NetTSC component ăùớ lớịy thưng tin vùỡ cơc goơi, sau ăụ nụ gỷời băn tin TSC_MsgAnswerCall ăùớ chớịp nhớơn cơc goơi. Traơng thãi tiùịp theo lađ WAIT_FOR_PSTN_CONNECT.

WAIT_FOR_CONNECT: Lũc nađy, kùnh ăang chỳđ phđa IP xõc nhớơn kùịt nưịi thađnh cưng.

Nùịu nhớơn ặỳơc message TSC_EvtCallState_Type_Connected tỷđ NetTSC nụ thỷơc hiùơn th tuơc quay sưị sang maơng PSTN, thỷơc hiùơn kùịt nưịi lỡng thưng tin thoaơi giỷơa hai bùn (cho phờp bùn IP cụ thùớ nghe ặỳơc cõc Tone ca PSTN) vađ chớn sang traơng thõi PSTN_INIT.

Trong lc nađy kùnh cụ thùớ nhớơn ặỳơc message TSC_EvtCallState_Type_Idled cho biùịt cuửơc goơi phđa IP ặỳơc giăi phụng, nõ gỷời message TSC_MsgReleaseCall ăùịn NetTSC.

Ngoađi ra nụ cng cụ thùớ nhớơn ặỳơc message TSC_EvtCallState_Type_Failed cho biùịt viùơc kùịt nưịi cơc goơi phđa IP

PSTN: DIGITAL_OFFHOOK NetTSC: TSC_EvtCallState_Type_Connected

Quay sỉ sang PSTN

hoƯc NetTSC: TSC_EvtCallState_Type_Failed

Gưi TSC_MsgDropCall đến NetTSC

WAIT_FOR_CALL GATE_INIT WAIT_FOR_CONNECT WAIT_FOR_DISCONNECT WAIT_FOR_IDLE WAIT_FOR_RELEAS PSTN_RELEASE WAIT_DONE PSTN_INIT NetTSC: TSC_EvtCallState_Type_Null PSTN đà gỏc mỏy PSTN: DIGITAL_ON_HOOK

hoƯc NetTSC: TSC_EvtCallState_Type_Disconnected

Gưi TSC_MsgDropCall đến NetTSC

NetTSC: TSC_EvtCallState_Type_Offered Gưi TSC_MsgGetCallInfo đến NetTSC NetTSC: TSC_EvtCallState_Type_Idled Gửi TSC_MsgGetCallInfo đến NetTSC NetTSC: TSC_EvtCallState_Type_Null PSTN ch-a gác máy PSTN: DIGITAL_ON_HOOK NetTSC: TSC_EvtCallState_Type_Null PSTN đà gỏc mỏy NetTSC: Std_MsgDetectEvtsCmplt NetTSC:

hoƯc NetTSC: TSC_EvtCallStat e_Type_Idled

Gưi TSC_MsgReleaseCall đến

thớịt baơi (cụ thùớ do khưng ăng ắa chú, húơc do chớn m hõ khưng phuđ hỳơp). Nụ thỷơc hiùơn viùơc giăi phụng cơc goơi bựỡng cõch gỷời ăi message TSC_MsgDropCall vađ kùnh chớn sang traơng thõi WAIT_FOR_IDLE.

PSTN_INIT: ỳờ traơng thõi nađy kùnh ăang chỳđ phđa PSTN tră lỳđi, cõc message mađ kùnh cụ thùớ nhớơn ặỳơc lũc nađy lađ:

Kùnh nhớơn ặỳơc sỷơ kiùơn DTI_OFF_HOOK cho biùịt bùn PSTN tră lỳđi cơc goơi, nụ chớn sang traơng thõi WAIT_FOR_DISCONNECT.

Kùnh nhớơn ặỳơc message TSC_EvtCallState_Type_Disconnected cho biùịt lađ phđa IP ă hu b cơc goơi. Nụ gỷời message TSC_MsgDropCall ăùớ ýu cớỡu giăi phụng cơc goơi, traơng thõi tiùịp theo cuờa kùnh lađ WAIT_FOR_IDLE.

Cãc traơng thãi tiùịp theo cuờa trỷỳđng hỳơp nađy hoađn toađn giửịng vỳõi trỷỳđng hỳơp cuửơc goơi PSTN inbound (giai ăoaơn kùịt thũc cơc goơi).

Một phần của tài liệu cong_nghe_dien_thoai_ip (Trang 97 - 102)

Tải bản đầy đủ (PDF)

(112 trang)