Presentation is loading. Please wait.

Presentation is loading. Please wait.

User Application GP API AoH API AoB API Requests Data & Events

Similar presentations


Presentation on theme: "User Application GP API AoH API AoB API Requests Data & Events"— Presentation transcript:

1 User Application GP API AoH API AoB API Requests Data & Events
Low Level API Calls Low Level API Calls AoH API AoB API cPCI PrimeNet MM IP NIC Digital Gateway Daytona MM PCI PrimeNet MM PCI Inline MM PCI

2 Record Channel Play Play Record Record Play Virtual Channel

3 Compare sequence of detected SITs with defined SIT messages.
PKX_EVENT_CHANNEL_TONE_ON Which tone? Not SIT SIT (one of SIT0 to SIT4) Store the detected SIT. Detected SITs Detected SITs? < 3 = 3 Compare sequence of detected SITs with defined SIT messages. SIT message detected? No Yes Report detected SIT message. PKX_EVENT_CALL_ANALYSIS_DETECTED_SIT_MESSAGE (p0=channel assigned to the call; p1=SIT message; p2=user-defined message)

4 lengthON = measured speechON segment length lengthOFF= measured speechOFF segment length lengthON > livePersonMaxTime lengthOFF > speechEndTime Yes Yes Answering Machine Live Person No No increment numberOfWords numberOfWords > livePersonWords No Yes Answering Machine

5 Group Channel System Conference Call Signaling Media Processing
Call Progress and Analysis

6 Configuration Files Group Definitions System
PKX_SYSTEM_Open Group Definitions System PKX_ SYSTEM_GetConfig PKX_ GROUP_GetHandle Group Group Group Group PKX_ CHANNEL_GetHandle Channel Channel Channel Channel Channel Channel Channel Channel Channel Channel Channel Channel Channel Channel Channel Channel PKX_ CHANNEL_FullDuplexConnect Connection PKX_ CONF_AddMember PKX_ CALL_GetChannel Conference Media Processing Call Call Call

7 Media Processing System Group Channel Connection Conference Call 1 N N
2 0/1 Connection N 0/1 0/1 0/1 Conference Call

8 Open Start Disabled Enabled Running Close Stop Group and channel handles can be retrieved Call events can occur at any time

9 pikagp.cfg AoB Configuration file product [group type] [board] AoB=filename type0=AoB group name1 AoH=filename board0=board name1 board1=board name2 type1=AoB group name2 [groups] group0=group name1 group1=group name2 board2=board name3 [AoB group name1] interface0=board0,port range [group name2] type=group type product=aoh channels=AoH group name interface1=board1,port range [board name3] id=board id serial=board serial number [board name2] id=board id [group name1] type=group type product=aob channels=type0 [AoB group name2] serial=board serial number interface0=board1,port range [board name1] interface1=board2,port range id=board id serial=board serial number AoH Configuration file

10 pikagp.cfg [group name1] [tonepatterns] [ring_pattern] ringpattern0=ring name 1 ringpattern1=ring name 2 [ring name2] states=n state0=duration state1=duration staten-1=duration [ring name1] states=m statem-1=duration type=group type tone_pattern0=tone pattern 1 tone_pattern1=tone pattern 2 product=aob tone_pattern2=tone pattern 3 channels=type0 callpa=call progress analysis name [tone pattern 1] repeat=r cadences=n [call progress analysis name] faxdetect=no modemdetect=no answeringmachinedetect=no pattern0=pattern name1 pattern1=pattern name2 pattern2=pattern name3 pattern3=pattern name4 cadence0=0 cadence1=1 cadence2=0 cadencen-1=2 [tone_generation] tone0=tone name 1 tone1=tone name 2 tone2=tone name 3 [pattern name1] type=pattern type [tone_detection] tone0=291,24,485.1,-32.0 tone1=72,24,1300.0,-46.0 tone2=72,24,1500.0,-46.0 group0=0.88,0.01,80,80,2,1,2 group1=0.90,0.01,250,80,1,0 cadences=n [tone name 1] states=m on=80 state0=2000 off=80 frequency1=941 statem-1=4000 amplitude1=-17.0 frequency2=1633 amplitude2=-15.0

11 Root Configuration File
AoH Product Configuration File [My group element] product=aoh type=isdn channels=isdn3 [My other group] product=aob type=sip channels=sip0 [isdn] isdn0=isdn_interface_3 isdn1=isdn_interface_7 isdn2=isdn_interface_2 isdn3=isdn_interface_1 isdn4=isdn_interface_4 [sip] sip0=aoh_sip_group AoB Product Configuration File [isdn] isdn0=isdn_interface_5 isdn1=isdn_interface_6 isdn2=isdn_interface_8 isdn3=isdn_interface_9 isdn4=isdn_interface_0 [sip] sip0=aob_sip_group

12 Start Start media and call processing Open the system object Retrieve
PKX_SYSTEM_Start Open the system object PKX_SYSTEM_Open Retrieve group names PKX_SYSTEM_GetConfig Wait for event PKX_SYSTEM_WaitOnEvent Initialize user application internal structures System shutdown event? More groups? End No Yes Yes No Retrieve group handle PKX_GROUP_GetHandle Timeout event? Yes No Process event Retrieve group type and number of channels PKX_GROUP_GetConfig

13 Initiate a call PKX_CALL_Make() Wait for event Switch on call event type CALL_DIALING CALL_PROCEEDING CALL_ALERTING CALL_CONNECTED Process dialling Process call proceeding Process alerting Process call answered

14 Wait for event Switch on Event type Accept the call Dialing the
GROUP_INCOMING_CALL Accept the call PKX_CALL_ Accept() CALL_DIALING CALL_PROCEEDING CALL_ALERTING CALL_CONNECTED Dialing the destination (analog trunks only) Successfully completed dialing, connect destination ringing to original caller PKX_CHANNEL_ HalfDuplexConnect() Destination ringing, answer the original call Connect the calls PKX_CHANNEL_ FullDuplexConnect() Call destination PKX_CALL_ Make()

15 Wait for event Switch on Event type Process Answer incoming the call
GROUP_INCOMING_CALL CALL_ANSWERED Answer the call PKX_CALL_Answer Process incoming call PKX_CHANNEL_PlayAddData PKX_CHANNEL_Play PKX_CHANNEL_CollectDigits

16 Disconnect the call Wait for event Switch on event type Reject
PKX_CALL_Drop Wait for event Switch on event type GROUP_INCOMING_CALL CALL_DISCONNECTED CALL_DROPPED CHANNEL_READY Reject the call PKX_CALL_Reject Release the call PKX_CALL_Release Release the call PKX_CALL_Release Add channel to list of available channels

17 Get bypass resource information PKX_[CHANNEL | CONF]_GetBypassInfo() Enable bypass PKX_[CHANNEL | CONF]_EnableBypass () Switch on type PKX_PRODUCT_LIBRARY_AOB PKX_PRODUCT_LIBRARY_AOH Perform AoB bypass functions PK_xxx () Perform AoH bypass functions PKH_xxx () Disable bypass PKX_[CHANNEL | CONF]_DisableBypass ()

18 GP API function call Switch on product type Perform AoB function
AoH function AoB Thread Queue AoH Thread Queue Retrieve event from queue Process event Inject result event in main queue Retrieve event from queue Process event Inject result event in main queue Main Thread Queue Retrieve event from queue Process event

19 Retrieve event from queue Process event User Application AoH Thread
PKX_SYSTEM_ WaitOnEvent() Retrieve event from queue Process event Main Thread Queue PKX_SYSTEM_ InjectEvent() User Application AoH Thread AoB Thread

20 Detected NULL Idle Disconnected Offered Alerting Connected PKX_EVENT_
CHANNEL_IN_USE PKX_EVENT_ CALL_DISCONNECTED PKX_EVENT_ CALL_DROPPED Detected NULL Idle Call detected (CAS, Trunk) PKX_CALL_Release() PKX_EVENT_ CHANNEL_READY PKX_EVENT_ CHANNEL_READY Call detected (SIP, ISDN) Dialing information received Low level or protocol resources released PKX_EVENT_GROUP_ INCOMING_CALL PKX_CALL_Reject() PKX_CALL_Drop() Remote disconnect indication Offered Alerting Disconnected PKX_EVENT_ CALL_ACCEPTED PKX_CALL_Accept PKX_EVENT_ CHANNEL_IN_USE PKX_CALL_Drop() Remote disconnect indication PKX_CALL_Answer() Connected PKX_CALL_Answer() PKX_EVENT_ CALL_ANSWERED

21 NULL Idle Initiating Disconnected Dialing Alerting Connected
PKX_EVENT_ CALL_DISCONNECTED NULL PKX_EVENT_ CALL_DROPPED Idle PKX_CALL_Make() on a channel in use PKX_CALL_Release() PKX_EVENT_ CHANNEL_READY PKX_CALL_Make() Remote reject Initiating Low level or protocol resources released PKX_CALL_Drop() Remote disconnect indication Addressing information being sent Disconnected Dialing PKX_EVENT_ CHANNEL_IN_USE PKX_CALL_Drop() Remote disconnect indication PKX_CALL_Drop() Remote disconnect indication Alerting Connected PKX_EVENT_ CALL_ALERTING PKX_EVENT_ CALL_CONNECTED Remote answered indication

22 PKX_EVENT_CHANNEL_DOWN
PKX_EVENT_CHANNEL_READY PKX_EVENT_CHANNEL_IN_USE Low level detection of a channel returning to service PKX_CALL_Make() PKX_EVENT_GROUP_ INCOMING_CALL Down Ready In use Low level detection of a channel going out of service PKX_CALL_Reject() PKX_CALL_Drop() Remote disconnect indication

23 User Application Event Processing Thread
GP Main GrandPrix API User Application GUI Processing Thread GP Timer Thread Product Interface AoH Product Thread AoB Product Thread AoH API AoB API

24 pika.com Registrar Server John@pika.com (5.6.7.8) 2 4 5 1 6 8
? ( ) 4 5 Register ( ) 1 PKX_EVENT_GROUP_ INCOMING_CALL ( ) 6 8 GrandPrix SIP Local User Agent pika.com Proxy Server 3 ( ) ( ) 7 ( )

25 PKX_ERROR_CHANNEL_AUDIO_DATA_NOT_AVAILABLE
Scenario 1 Add Buffer (Last buffer flag set) Scenario 2 Scenario 3 Play Play PlayFile PKX_ERROR_CHANNEL_AUDIO_DATA_NOT_AVAILABLE PKX_EVENT_CHANNEL_DONE_PLAY PKX_EVENT_CHANNEL_DONE_PLAY PKX_EVENT_CHANNEL_DATAREADY_PLAY PKX_EVENT_CHANNEL_DATAREADY_PLAY Add Buffer (Last buffer flag set) Scenario 4 Add Buffer (Last buffer flag set) Add Buffer (Last buffer flag set) Scenario 5 Add Buffer Add Buffer Play Play Stop Add Buffer Add Buffer Add Buffer Add Buffer PKX_EVENT_CHANNEL_DONE_PLAY PKX_EVENT_CHANNEL_STOPPED_PLAY PKX_EVENT_CHANNEL_DATAREADY_PLAY PKX_EVENT_CHANNEL_DATAREADY_PLAY PKX_EVENT_CHANNEL_DATAREADY_PLAY PKX_EVENT_CHANNEL_DATAREADY_PLAY PKX_EVENT_CHANNEL_DATAREADY_PLAY PKX_EVENT_CHANNEL_DATAREADY_PLAY

26 Scenario 7 Scenario 6 Add Buffer (Last buffer flag set) Add Buffer
Play Add Buffer Add Buffer PKX_EVENT_CHANNEL_DONE_PLAY PKX_EVENT_CHANNEL_DATAREADY_PLAY PKX_EVENT_CHANNEL_DATAREADY_PLAY PKX_EVENT_CHANNEL_DATAREADY_PLAY PKX_EVENT_CHANNEL_DATAREADY_PLAY Add Buffer (Last buffer flag set) Add Buffer (Last buffer flag set) Scenario 6 Add Buffer Play Termination condition met Add Buffer Add Buffer PKX_EVENT_CHANNEL_TERM_xxx PKX_EVENT_CHANNEL_DATAREADY_PLAY PKX_EVENT_CHANNEL_DATAREADY_PLAY

27 Scenario 8 Add Buffer (Last buffer flag set) Add Buffer Add Play
PKX_EVENT_CHANNEL_DATAREADY_PLAY PKX_EVENT_CHANNEL_DONE_PLAY PKX_EVENT_CHANNEL_DATAREADY_PLAY PKX_EVENT_CHANNEL_DATAREADY_PLAY PKX_EVENT_CHANNEL_UNDERFLOW_PLAY PKX_EVENT_CHANNEL_DATAREADY_PLAY

28 Scenario 1 Scenario 2 Scenario 3
RecordFile Record RecordGetData Termination condition met RecordGetData RecordGetData RecordGetData PKX_EVENT_CHANNEL_TERM_xxx PKX_EVENT_CHANNEL_STOPPED_RECORD PKX_EVENT_CHANNEL_DATAREADY _RECORD PKX_EVENT_CHANNEL_DATAREADY _RECORD PKX_EVENT_CHANNEL_DATAREADY_RECORD PKX_EVENT_CHANNEL_DATAREADY_ RECORD Scenario 3 Record Stop RecordGetData PKX_EVENT_CHANNEL_STOPPED_RECORD PKX_EVENT_CHANNEL_DATAREADY _RECORD PKX_EVENT_CHANNEL_RECORD_OVERFLOW PKX_EVENT_CHANNEL_DATAREADY _RECORD PKX_EVENT_CHANNEL_DATAREADY_RECORD PKX_EVENT_CHANNEL_DATAREADY_ RECORD PKX_EVENT_CHANNEL_DATAREADY_RECORD PKX_EVENT_CHANNEL_DATAREADY_ RECORD

29 Internal Digit Buffer 1 5 7 5 6 2 6 3 7 4 8 5 9 6 7 CollectDigits
maxDigits = 5 CollectDigits maxDigits = 3 CollectDigits maxDigits = 3 GetDigits (numDigits = 4) Stop PKX_EVENT_CHANNEL_DTMF DTMF 1 PKX_EVENT_CHANNEL_DTMF DTMF 2 PKX_EVENT_CHANNEL_DTMF DTMF 3 PKX_EVENT_CHANNEL_DTMF DTMF 4 PKX_EVENT_CHANNEL_DTMF DTMF 5 PKX_EVENT_CHANNEL_DTMF DTMF 6 PKX_EVENT_CHANNEL_DTMF DTMF 7 PKX_EVENT_CHANNEL_DTMF DTMF 8 PKX_EVENT_CHANNEL_DTMF DTMF 9 PKX_EVENT_CHANNEL_TERM_MAX_DIGITS PKX_EVENT_CHANNEL_TERM_MAX_DIGITS Internal Digit Buffer 1 5 PKX_EVENT_CHANNEL_STOPPED_COLLECT_DIGITS 7 5 6 2 6 3 7 4 8 5 9 6 7

30 Speech Speech Speech Speech
PKX_CHANNEL_EnableSpeechDetection PKX_CHANNEL_DisableSpeechDetection Speech Speech Speech Speech PKX_EVENT_CHANNEL_SPEECH_ON PKX_EVENT_CHANNEL_SPEECH_OFF PKX_EVENT_CHANNEL_SPEECH_ON

31 User Application GrandPrix PSTN Initial Call (Incoming) Supervised
PKX_EVENT_CHANNEL_IN_USE Ring Notification FSK Information PKX_EVENT_GROUP_INCOMING _CALL PKX_CALL_Accept() PKX_EVENT_CALL_ACCEPTED Optional PKX_CALL_Answer() Offhook PKX_EVENT_CALL_ANSWERED PKX_CALL_Transfer() Supervised Call Transfer Hookflash First call now on hold PKX_EVENT_CHANNEL_READY PKX_EVENT_CALL_HELD PKX_EVENT_CHANNEL_IN_USE PKX_EVENT_CALL_DIALING PKX_EVENT_CALL_PROCEEDING Stutter Dialtone Digits Ring notification PKX_EVENT_CALL_ALERTING Connected PKX_EVENT_CALL_CONNECTED Optional Call Analysis (fax, modem, SIT message, answering machine or human) Transfer Completion PKX_CALL_Drop(TRANSFER) Onhook First and second call now joined on the switch PKX_EVENT_CALL_DROPPED PKX_EVENT_CALL_DISCONNECTED PKX_EVENT_CHANNEL_READY PKX_CALL_Release() PKX_CALL_Release() First call event Second call function Legend First call function Second call event

32 User Application GrandPrix PSTN Initial Call (Outgoing) Supervised
PKX_CALL_Make() PKX_EVENT_CHANNEL_IN_USE Offhook Dialtone Digits Ring Notification PKX_EVENT_CALL_ALERTING PKX_EVENT_CALL_CONNECTED Supervised Call Transfer PKX_CALL_Transfer() Hookflash First call now on hold PKX_EVENT_CHANNEL_READY PKX_EVENT_CALL_HELD PKX_EVENT_CHANNEL_IN_USE PKX_EVENT_CALL_DIALING PKX_EVENT_CALL_PROCEEDING Stutter Dialtone Digits Ring notification PKX_EVENT_CALL_ALERTING Transfer Completion PKX_CALL_Drop(TRANSFER) Onhook First and second call now joined on the switch PKX_EVENT_CALL_DROPPED PKX_EVENT_CALL_DISCONNECTED PKX_EVENT_CHANNEL_READY PKX_CALL_Release() PKX_CALL_Release() First call event Second call function Legend First call function Second call event

33 First call already established
User Application GrandPrix PSTN First call already established Call Transfer PKX_CALL_Transfer() Hookflash First call now on hold PKX_EVENT_CHANNEL_READY PKX_EVENT_CALL_HELD PKX_EVENT_CHANNEL_IN_USE PKX_EVENT_CALL_DIALING PKX_EVENT_CALL_PROCEEDING Stutter Dialtone Digits Ring notification PKX_EVENT_CALL_ALERTING Connected PKX_EVENT_CALL_CONNECTED Fax tone PKX_EVENT_CALL_ANALYSIS_ DETECTED_MODEM_FAX Manual Resume PKX_CALL_Drop(NORMAL) Hookflash First call now resumed PKX_EVENT_CALL_DROPPED PKX_EVENT_CALL_RESUMED PKX_CALL_Release() First call event Second call function Legend First call function Second call event

34 First call already established
User Application GrandPrix PSTN First call already established Call Transfer PKX_CALL_Transfer() Hookflash First call now on hold PKX_EVENT_CHANNEL_READY PKX_EVENT_CALL_HELD PKX_EVENT_CHANNEL_IN_USE PKX_EVENT_CALL_DIALING PKX_EVENT_CALL_PROCEEDING Stutter Dialtone Digits Automatic Resume Busytone First call now resumed PKX_EVENT_CALL_DISCONNECTED Hookflash PKX_EVENT_CALL_RESUMED PKX_CALL_Release() First call event Second call function Legend First call function Second call event

35 Remote Switch 1 User Application First call established Remote Switch 2 User Application First call held Remote Switch 3 User Application Second call established Remote Switch 4 User Application Call transferred

36 Calling Party GrandPrix Called Party
PKX_GROUP_EVENT_INCOMING_CALL PKX_CALL_Accept PKX_EVENT_CALL_ACCEPTED PKX_CALL_Make PKX_EVENT_CALL_PROCEEDING PKX_EVENT_CALL_ALERTING PKX_CHANNEL_HalfDuplexConnect PKX_EVENT_CALL_CONNECTED PKX_CALL_Answered PKX_EVENT_CALL_ANSWERED PKX_CHANNEL_FullDuplexConnect Legend First call function First call event Second call function Second call event Audio path

37 NULL Initiating Idle Dialing Disconnected Proceeding Connected
PKX_CALL_Make (Trunks only) PKX_CALL_Release PKX_EVENT_CALL_DISCONNECTED (for remote disconnect indication) Initiating Idle PKX_EVENT_CALL_DROPPED (for PKX_CALL_Drop) Address delivery started Low-level resources released PKX_CALL_Make (except Trunks) Dialing Disconnected PKX_EVENT_CALL_DIALING Address delivery complete PKX_CALL_Drop or Remote disconnect indication Proceeding Connected Alerting PKX_EVENT_CALL_CONNECTED PKX_EVENT_CALL_PROCEEDING Remote answer indication Remote alerting indication PKX_EVENT_CALL_ALERTING

38 NULL Detected Idle Offered Disconnected Alerting Connected
Call detected (CAS, Trunk) PKX_CALL_Release Detected PKX_EVENT_CALL_DISCONNECTED (for remote disconnect indication) Idle PKX_EVENT_CALL_DROPPED (for PKX_CALL_Drop) Address information received Call detected (ISDN, SIP, Skype) Low-level resources released PKX_CALL_Reject Offered Disconnected PKX_EVENT_GROUP_INCOMING_CALL PKX_CALL_Accept Alerting Connected PKX_CALL_Drop or Remote disconnect indication PKX_EVENT_CALL_ACCEPTED PKX_CALL_Answer PKX_EVENT_CALL_ANSWERED


Download ppt "User Application GP API AoH API AoB API Requests Data & Events"

Similar presentations


Ads by Google