1 / 35

User Application

User Application. AoH API. GP API. AoB API. cPCI PrimeNet MM. IP NIC. Inline MM PCI. Digital Gateway. Daytona MM PCI. PrimeNet MM PCI. Requests. Data & Events. Low Level API Calls. Low Level API Calls. Channel. Record. Play. Play. Record. Record. Play. Virtual Channel.

Télécharger la présentation

User Application

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Channel Record Play Play Record Record Play Virtual Channel

  3. 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 lengthOFF > speechEndTime lengthON > livePersonMaxTime Yes Yes Live Person Answering Machine No No increment numberOfWords numberOfWords > livePersonWords No Yes Answering Machine

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

  6. Configuration Files 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_ CALL_GetChannel PKX_ CONF_AddMember Conference Media Processing Call Call Call

  7. Media Processing System 1 N N N Connection 2 0/1 1 N Group Channel 0/1 N 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. [groups] group0=group name1 group1=group name2 [group name2] type=group type product=aoh channels=AoH group name [group name1] type=group type product=aob channels=type0 pikagp.cfg AoB Configuration file product [group type] [board] AoB=filename type0=AoB group name1 board0=board name1 AoH=filename board1=board name2 type1=AoB group name2 board2=board name3 [AoB group name1] interface0=board0,port range interface1=board1,port range [board name3] id=board id serial=board serial number [board name2] id=board id [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. [ring_pattern] ringpattern0=ring name 1 ringpattern1=ring name 2 [ring name2] [call progress analysis name] states=n state0=duration faxdetect=no state1=duration modemdetect=no answeringmachinedetect=no staten-1=duration [ring name1] pattern0=pattern name1 states=m pattern1=pattern name2 state0=duration pattern2=pattern name3 state1=duration pattern3=pattern name4 statem-1=duration [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 pikagp.cfg [group name1] [tonepatterns] tone_pattern0=tone pattern 1 type=group type 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 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 name 1] cadences=n on=80 states=m off=80 state0=2000 frequency1=941 statem-1=4000 amplitude1=-17.0 frequency2=1633 amplitude2=-15.0

  11. [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 AoH Product Configuration File Root Configuration File 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 PKX_SYSTEM_Start Start media and call processing PKX_SYSTEM_Open Open the system object Wait for event PKX_SYSTEM_WaitOnEvent PKX_SYSTEM_GetConfig Retrieve group names Initialize user application internal structures System shutdown event? More groups? End No Yes Yes No PKX_GROUP_GetHandle Retrieve group handle Timeout event? Yes No Process event PKX_GROUP_GetConfig Retrieve group type and number of channels

  13. PKX_CALL_Make() Initiate a call 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 GROUP_INCOMING_CALL CALL_ALERTING CALL_ANSWERED CALL_CONNECTED PKX_CALL_ Answer() PKX_CHANNEL_ HalfDuplexConnect() Accept the call Destination ringing, answer the original call Original call answered, connect destination ringing to original caller PKX_CHANNEL_ FullDuplexConnect() Connect the calls PKX_CALL_ Accept() PKX_CALL_ Make() Call destination

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

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

  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 Perform AoH bypass functions PK_xxx () PKH_xxx () PKX_[CHANNEL | CONF]_DisableBypass () Disable bypass

  18. GP API function call Switch on product type Perform AoH function Perform AoB function AoH Thread Queue AoB 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. AoH Thread Main Thread Queue PKX_SYSTEM_ WaitOnEvent() Process event Retrieve event from queue PKX_SYSTEM_ InjectEvent() User Application AoB Thread

  20. PKX_EVENT_ CHANNEL_IN_USE PKX_EVENT_ CALL_DISCONNECTED PKX_EVENT_ CALL_DROPPED Idle NULL Detected 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_CALL_Reject() PKX_EVENT_GROUP_ INCOMING_CALL PKX_CALL_Drop() Remote disconnect indication Disconnected Alerting Offered 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. PKX_EVENT_ CALL_DISCONNECTED PKX_EVENT_ CALL_DROPPED NULL Idle PKX_CALL_Release() PKX_EVENT_ CHANNEL_READY PKX_CALL_Make() on a channel in use PKX_CALL_Make() Low level or protocol resources released Remote reject Dialing Disconnected PKX_EVENT_ CHANNEL_IN_USE PKX_CALL_Drop() Remote disconnect indication PKX_CALL_Drop() Remote disconnect indication PKX_CALL_Drop() Remote disconnect indication Alerting Connected PKX_EVENT_ CALL_CONNECTED PKX_EVENT_ CALL_ALERTING Remote answered indication

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

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

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

  25. Add Buffer (Last buffer flag set) Scenario 3 Scenario 2 Scenario 1 PlayFile Play Play 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) Add Buffer (Last buffer flag set) Add Buffer (Last buffer flag set) Scenario 5 Scenario 4 Add Buffer Add Buffer Stop Play Play 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. Add Buffer (Last buffer flag set) Scenario 7 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 Termination condition met Play Add Buffer Add Buffer PKX_EVENT_CHANNEL_TERM_xxx PKX_EVENT_CHANNEL_DATAREADY_PLAY PKX_EVENT_CHANNEL_DATAREADY_PLAY

  27. 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_UNDERFLOW_PLAY PKX_EVENT_CHANNEL_DATAREADY_PLAY PKX_EVENT_CHANNEL_DATAREADY_PLAY Scenario 8

  28. Scenario 1 Scenario 2 RecordFile Record RecordGetData Termination condition met RecordGetData RecordGetData RecordGetData PKX_EVENT_CHANNEL_STOPPED_RECORD PKX_EVENT_CHANNEL_TERM_xxx 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. DTMF 1 DTMF 9 DTMF 2 DTMF 3 DTMF 6 DTMF 4 DTMF 8 DTMF 5 DTMF 7 3 4 4 3 4 3 3 4 6 6 3 8 8 7 7 1 2 1 2 1 2 1 1 2 5 1 2 5 2 5 1 6 5 5 9 6 5 6 PKX_EVENT_CHANNEL_DTMF 7 PKX_EVENT_CHANNEL_DTMF PKX_EVENT_CHANNEL_DTMF PKX_EVENT_CHANNEL_DTMF PKX_EVENT_CHANNEL_DTMF PKX_EVENT_CHANNEL_DTMF PKX_EVENT_CHANNEL_DTMF PKX_EVENT_CHANNEL_DTMF PKX_EVENT_CHANNEL_DTMF CollectDigits maxDigits = 5 GetDigits (numDigits = 4) CollectDigits maxDigits = 3 CollectDigits maxDigits = 3 Stop PKX_EVENT_CHANNEL_TERM_MAX_DIGITS PKX_EVENT_CHANNEL_TERM_MAX_DIGITS PKX_EVENT_CHANNEL_STOPPED_COLLECT_DIGITS Internal Digit Buffer 7

  30. 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. PKX_EVENT_CHANNEL_IN_USE PKX_EVENT_CHANNEL_READY PKX_EVENT_GROUP_INCOMING _CALL PKX_EVENT_CALL_DISCONNECTED PKX_EVENT_CALL_ACCEPTED PKX_EVENT_CALL_HELD PKX_EVENT_CALL_ANSWERED PKX_EVENT_CALL_CONNECTED PKX_EVENT_CALL_ALERTING PKX_EVENT_CHANNEL_IN_USE PKX_EVENT_CALL_DROPPED PKX_EVENT_CALL_DIALING Legend First call function First call event Second call function Second call event User Application GrandPrix PSTN Ring Notification Initial Call (Incoming) FSK Information PKX_CALL_Accept() Optional PKX_CALL_Answer() Offhook PKX_CALL_Transfer() Supervised Call Transfer First call now on hold Hookflash Stutter Dialtone Digits Ring notification 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_CHANNEL_READY PKX_CALL_Release() PKX_CALL_Release()

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

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

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

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

More Related