Asterisk ari-event: Difference between revisions
Line 358: | Line 358: | ||
"asterisk_id": "210445d7-73bd-456a-aef2-e0ef847bfa0f", | "asterisk_id": "210445d7-73bd-456a-aef2-e0ef847bfa0f", | ||
"application": "pchero_voip" | "application": "pchero_voip" | ||
} | |||
</pre> | |||
== ChannelEnteredBridge == | |||
=== Example === | |||
<pre> | |||
{ | |||
"type": "ChannelEnteredBridge", | |||
"timestamp": "2019-03-19T16:48:54.265+0000", | |||
"bridge": { | |||
"id": "1b98c21c-98f5-41cc-8fa0-1981bc380501", | |||
"technology": "simple_bridge", | |||
"bridge_type": "mixing", | |||
"bridge_class": "stasis", | |||
"creator": "Stasis", | |||
"name": "", | |||
"channels": ["d3137253-7118-418c-80f3-1595fbcd75b0"], | |||
"video_mode": "talker" | |||
}, | |||
"channel": { | |||
"id": "d3137253-7118-418c-80f3-1595fbcd75b0", | |||
"name": "PJSIP/pchero-voip-00000010", | |||
"state": "Up", | |||
"caller": { | |||
"name": "", | |||
"number": "test" | |||
}, | |||
"connected": { | |||
"name": "", | |||
"number": "test" | |||
}, | |||
"accountcode": "", | |||
"dialplan": { | |||
"context": "pchero-voip", | |||
"exten": "s", | |||
"priority": 1 | |||
}, | |||
"creationtime": "2019-03-19T16:48:45.352+0000", | |||
"language": "en" | |||
}, | |||
"asterisk_id": "42:01:0a:84:12:32", | |||
"application": "test" | |||
} | } | ||
</pre> | </pre> |
Revision as of 16:51, 19 March 2019
Overview
Asterisk ARI event 내용 정리
Channel
A specific communication connection between Asterisk and an Endpoint.
{ "properties": { "accountcode": { "required": true, "type": "string" }, "name": { "required": true, "type": "string", "description": "Name of the channel (i.e. SIP/foo-0000a7e3)" }, "language": { "required": true, "type": "string", "description": "The default spoken language" }, "channelvars": { "required": false, "type": "object", "description": "Channel variables" }, "caller": { "required": true, "type": "CallerID" }, "creationtime": { "required": true, "type": "Date", "description": "Timestamp when channel was created" }, "state": { "allowableValues": { "valueType": "LIST", "values": [ "Down", "Rsrved", "OffHook", "Dialing", "Ring", "Ringing", "Up", "Busy", "Dialing Offhook", "Pre-ring", "Unknown" ] }, "required": true, "type": "string" }, "connected": { "required": true, "type": "CallerID" }, "dialplan": { "required": true, "type": "DialplanCEP", "description": "Current location in the dialplan" }, "id": { "required": true, "type": "string", "description": "Unique identifier of the channel.\n\nThis is the same as the Uniqueid field in AMI." } }, "id": "Channel", "description": "A specific communication connection between Asterisk and an Endpoint." }
- accountcode: string
- caller: CallerID
- channelvars: object(optional): Channel variables
- connected: CallerID
- creationtime: Date: Timestamp when channel was created.
- dialplan: DialplanCEP: Current location in the dialplan.
- id: string: Unique identifier of the channel.
- This is the same as the Uniqueid filed in AMI
BridgeCreated
Example
{ "type": "BridgeCreated", "timestamp": "2019-03-19T16:48:54.251+0000", "bridge": { "id": "1b98c21c-98f5-41cc-8fa0-1981bc380501", "technology": "simple_bridge", "bridge_type": "mixing", "bridge_class": "stasis", "creator": "Stasis", "name": "", "channels": [], "video_mode": "none" }, "asterisk_id": "42:01:0a:12:32:12", "application": "test" }
ChannelCallerId
Base type: Event
Channel changed Caller ID.
{ "properties": { "caller_presentation_txt": { "required": true, "type": "string", "description": "The text representation of the Caller Presentation value." }, "caller_presentation": { "required": true, "type": "int", "description": "The integer representation of the Caller Presentation value." }, "channel": { "required": true, "type": "Channel", "description": "The channel that changed Caller ID." } }, "id": "ChannelCallerId", "description": "Channel changed Caller ID." }
- asterisk_id: string(optional) : The unique ID for the Asterisk instance that raised this event.
- type: string : Indicates the type of this message.
- application: string : Name of the application receiving the event.
- timestamp: Date(optional) : Time at which this event was created.
- caller_presentation: int : The integer representation of the Caller Presentation value.
- caller_presentation_txt: string : The text representation of the Caller Presentation value.
- channel: Channel : The channel that changed Caller ID.
Example
{ "type": "ChannelCallerId", "timestamp": "2019-03-10T20:44:47.240+0000", "caller_presentation": 0, "caller_presentation_txt": "Presentation Allowed, Not Screened", "channel": { "id": "1552250684.286164", "name": "PJSIP/pchero-voip-siptrunking-0f922f18", "state": "Ring", "caller": { "name": "", "number": "test_caller" }, "connected": { "name": "", "number": "" }, "accountcode": "", "dialplan": { "context": "pchero-voip-siptrunking", "exten": "test_call", "priority": 2 }, "creationtime": "2019-03-10T20:44:44.835+0000", "language": "en" }, "asterisk_id": "42:01:0a:94:00:11", "application": "pchero_voip" }
ChannelCreated
Base type: Event
Notification that a channel has been created.
{ "properties": { "channel": { "required": true, "type": "Channel" } }, "id": "ChannelCreated", "description": "Notification that a channel has been created." }
- asterisk_id: string(optional) : The unique ID for the Asterisk instance that raised this event.
- type : string : Indicates the type of this message.
- application : string : Name of the application receiving the event.
- timestamp : Date(optional) : Time at which this event was created.
- channel : Channel
Example
{ "type": "ChannelCreated", "timestamp": "2019-03-06T23:47:09.077+0100", "channel": { "id": "test_call", "name": "PJSIP/sipp-uac-00000000", "state": "Down", "caller": { "name": "", "number": "" }, "connected": { "name": "", "number": "" }, "accountcode": "", "dialplan": { "context": "sipp-uac", "exten": "s", "priority": 1 }, "creationtime": "2019-03-06T23:47:09.058+0100", "language": "en" }, "asterisk_id": "00:11:22:33:44:55", "application": "test" }
ChannelDestroyed
Base type: Event
Notification that a channel has been destroyed.
{ "properties": { "cause": { "required": true, "type": "int", "description": "Integer representation of the cause of the hangup" }, "cause_txt": { "required": true, "type": "string", "description": "Text representation of the cause of the hangup" }, "channel": { "required": true, "type": "Channel" } }, "id": "ChannelDestroyed", "description": "Notification that a channel has been destroyed." }
- asetrisk_id: string(optional): The unique ID for the Asterisk instance that raised this event.
- type: string: Indicates the type of this message.
- application: string: Name of the application receiving the event.
- timestamp: Date(optional): Time at which this event was created.
- cause: int: Integer representation of the cause of the hangup.
- cause_txt: string: Text representation of the cause of the hangup.
- channel: Channel
Example
{ "type": "ChannelDestroyed", "timestamp": "2018-10-23T12:36:11.110+0000", "cause": 0, "cause_txt": "Unknown", "channel": { "id": "pchero-462475.572686", "name": "PJSIP/pchero-voip-00001b1f", "state": "Up", "caller": { "name": "", "number": "1337" }, "connected": { "name": "", "number": "1337" }, "accountcode": "", "dialplan": { "context": "pchero-voip", "exten": "s", "priority": 2 }, "creationtime": "2018-10-23T12:36:02.671+0000", "language": "en" }, "asterisk_id": "210445d7-73bd-456a-aef2-e0ef847bfa0f", "application": "pchero_voip" }
ChannelDialplan
Base type: Event
Channel changed location in the dialplan.
{ "properties": { "dialplan_app_data": { "required": true, "type": "string", "description": "The data to be passed to the application." }, "channel": { "required": true, "type": "Channel", "description": "The channel that changed dialplan location." }, "dialplan_app": { "required": true, "type": "string", "description": "The application about to be executed." } }, "id": "ChannelDialplan", "description": "Channel changed location in the dialplan." }
- asterisk_id: string(optional): The unique ID for the Asterisk instance that raised this event.
- type: string: Indicates the type of this message.
- application: string: Name of the application receiving the event.
- timestamp: Date(optional): Time at which this event was created.
- channel: Channel: The channel that changed dialplan location.
- dialplan_app: string: The application about to be executed.
- dialplan_app_data: string: The data to be passed to the application.
Example
{ "type": "ChannelDialplan", "timestamp": "2018-10-23T12:36:11.109+0000", "dialplan_app": "AppDial2", "dialplan_app_data": "(Outgoing Line)", "channel": { "id": "pchero-462475.572686", "name": "PJSIP/pchero-voip-00001b1f", "state": "Up", "caller": { "name": "", "number": "1337" }, "connected": { "name": "", "number": "1337" }, "accountcode": "", "dialplan": { "context": "pchero-voip", "exten": "s", "priority": 2 }, "creationtime": "2018-10-23T12:36:02.671+0000", "language": "en" }, "asterisk_id": "210445d7-73bd-456a-aef2-e0ef847bfa0f", "application": "pchero_voip" }
ChannelEnteredBridge
Example
{ "type": "ChannelEnteredBridge", "timestamp": "2019-03-19T16:48:54.265+0000", "bridge": { "id": "1b98c21c-98f5-41cc-8fa0-1981bc380501", "technology": "simple_bridge", "bridge_type": "mixing", "bridge_class": "stasis", "creator": "Stasis", "name": "", "channels": ["d3137253-7118-418c-80f3-1595fbcd75b0"], "video_mode": "talker" }, "channel": { "id": "d3137253-7118-418c-80f3-1595fbcd75b0", "name": "PJSIP/pchero-voip-00000010", "state": "Up", "caller": { "name": "", "number": "test" }, "connected": { "name": "", "number": "test" }, "accountcode": "", "dialplan": { "context": "pchero-voip", "exten": "s", "priority": 1 }, "creationtime": "2019-03-19T16:48:45.352+0000", "language": "en" }, "asterisk_id": "42:01:0a:84:12:32", "application": "test" }
ChannelHangupRequest
Base type: Event
A hangup was requested on the channel.
ChannelHangupRequest 에는 몇 가지 의미가 있다.
Soft 가 true 로 설정되었을 때는, Hangup() application 이 실행되었거나, Dialplan 에서의 h extension 이 실행되었을 경우 발생한다. h extension 은 명시적으로 지정될 수 도 있고, 묵시적으로 실행이 될 수 있다. 따라서 한번 Dailplan 으로 인입된 Channel 이 종료될 때는 이 이벤트를 발생시킨다.
Soft 가 false 이거나 설정되어 있지 않는 경우는, Hangup Request 를 명시적으로 받았음을 의미한다. ```channel hangup request``` 명령어나 상대방쪽에서 BYE 메시지를 먼저 보냈을 경우가 이에 해당한다.
하지만 뭔가 규칙이 일정하지 않다. ARI 에서 ChannelHangupRequest 이벤트를 사용하고자 할 때는 주의가 필요하다.
{ "properties": { "soft": { "type": "boolean", "description": "Whether the hangup request was a soft hangup request." }, "cause": { "type": "int", "description": "Integer representation of the cause of the hangup." }, "channel": { "required": true, "type": "Channel", "description": "The channel on which the hangup was requested." } }, "id": "ChannelHangupRequest", "description": "A hangup was requested on the channel." }
- asterisk_id: string (optional) - The unique ID for the Asterisk instance that raised this event.
- type: string - Indicates the type of this message.
- application: string - Name of the application receiving the event.
- timestamp: Date(optional) - Time at which this event was created.
- cause: int(optional) - Integer representation of the cause of the hangup.
- channel: Channel - The channel on which the hangup was requested.
- soft: boolean(optional) - Whether the hangup request was a soft hangup request.
Example
{ "cause": 32, "soft": true, "type": "ChannelHangupRequest", "timestamp": "2018-12-02T22:11:29.118+0100", "channel": { "id": "1543785048.30", "name": "PJSIP/sippuas-0000000f", "state": "Up", "caller": { "name": "", "number": "" }, "connected": { "name": "", "number": "" }, "accountcode": "", "dialplan": { "context": "sippuas", "exten": "s", "priority": 1 }, "creationtime": "2018-12-02T22:10:48.176+0100", "language": "en" }, "asterisk_id": "08:00:27:2f:9e:d4", "application": "test" }
ChannelStateChange
Base type: Event
Notification of a channel's state change
{ "properties": { "channel": { "required": true, "type": "Channel" } }, "id": "ChannelStateChange", "description": "Notification of a channel's state change." }
- asterisk_id: string(optional): The unique ID for the Asterisk instance that raised this event.
- type: string: Indicates the type of this message.
- application: string: Name of the application receiving the event.
- timestamp: Date(optional): Time at which this event was created.
- channel: Channel
Example
{ "type": "ChannelStateChange", "timestamp": "2018-10-23T12:36:07.628+0000", "channel": { "id": "pchero-462475.572686", "name": "PJSIP/pchero-voip-00001b1f", "state": "Ringing", "caller": { "name": "", "number": "1337" }, "connected": { "name": "", "number": "1337" }, "accountcode": "", "dialplan": { "context": "pchero-voip", "exten": "s", "priority": 1 }, "creationtime": "2018-10-23T12:36:02.671+0000", "language": "en" }, "asterisk_id": "210445d7-73bd-456a-aef2-e0ef847bfa0f", "application": "pchero_voip" }
ChannelVarset
Base type: Event
Channel variable changed
{ "properties": { "variable": { "required": true, "type": "string", "description": "The variable that changed." }, "channel": { "required": false, "type": "Channel", "description": "The channel on which the variable was set.\n\nIf missing, the variable is a global variable." }, "value": { "required": true, "type": "string", "description": "The new value of the variable." } }, "id": "ChannelVarset", "description": "Channel variable changed." }
- asterisk_id: string(optional): The unique ID for the Asterisk instance that raised this event.
- type: string: Indicates the type of this message.
- application: string: Name of the application receiving the event.
- timestamp: Date(optional): Time at which this event was created.
- channel: Channel(optional): The channel on which the variable was set.
- If missing, the variable is a global variable.
Example
{ "variable": "STASISSTATUS", "value": "", "type": "ChannelVarset", "timestamp": "2018-10-23T12:36:09.602+0000", "channel": { "id": "pchero-462475.572686", "name": "PJSIP/pchero-voip-00001b1f", "state": "Up", "caller": { "name": "", "number": "1337" }, "connected": { "name": "", "number": "1337" }, "accountcode": "", "dialplan": { "context": "pchero-voip", "exten": "s", "priority": 1 }, "creationtime": "2018-10-23T12:36:02.671+0000", "language": "en" }, "asterisk_id": "210445d7-73bd-456a-aef2-e0ef847bfa0f", "application": "pchero_voip" }
DeviceStateChanged
Represents the state of a device.
{ "properties": { "state": { "allowableValues": { "valueType": "LIST", "values": [ "UNKNOWN", "NOT_INUSE", "INUSE", "BUSY", "INVALID", "UNAVAILABLE", "RINGING", "RINGINUSE", "ONHOLD" ] }, "required": true, "type": "string", "description": "Device's state" }, "name": { "required": true, "type": "string", "description": "Name of the device." } }, "id": "DeviceState", "description": "Represents the state of a device." }
- name: string - Name of the device.
- state: string - Device's state.
Example
{ "type": "DeviceStateChanged", "application": "test", "timestamp": "2018-12-02T22:11:29.121+0100", "device_state": { "name": "PJSIP/sippuas", "state": "NOT_INUSE" }, "asterisk_id": "08:00:27:2f:9e:d4" }
Dial
Base type: Event
Dialing state has changed.
{ "properties": { "forwarded": { "required": false, "type": "Channel", "description": "Channel that the caller has been forwarded to." }, "caller": { "required": false, "type": "Channel", "description": "The calling channel." }, "dialstatus": { "required": true, "type": "string", "description": "Current status of the dialing attempt to the peer." }, "forward": { "required": false, "type": "string", "description": "Forwarding target requested by the original dialed channel." }, "dialstring": { "required": false, "type": "string", "description": "The dial string for calling the peer channel." }, "peer": { "required": true, "type": "Channel", "description": "The dialed channel." } }, "id": "Dial", "description": "Dialing state has changed." }
- asterisk_id: string(optional): The unique ID for the Asterisk instance that raised this event.
- type: string: Indicates the type of this message.
- application: string: Name of the application receiving the event.
- timestamp: Date(optional): Time at which this event was created.
- caller: Channel(optional): The calling channel
- dialstatus: string: Current status of the dialing attempt to the peer.
- dialstring: string(optional): The dial string for calling the peer channel.
- forward: string(optional): Forwarding target requested by the original dialed channel.
- forwarded: Channel(optional): Channel that the caller has been forwared to.
- peer: Channel: The dialed channel.
Example
{ "type": "Dial", "timestamp": "2018-10-23T12:36:02.673+0000", "dialstatus": "", "forward": "", "dialstring": "pchero-voip/sip:284712939482@127.0.0.1", "peer": { "id": "pchero-462475.572686", "name": "PJSIP/pchero-voip-00001b1f", "state": "Down", "caller": { "name": "", "number": "1337" }, "connected": { "name": "", "number": "1337" }, "accountcode": "", "dialplan": { "context": "pchero-voip", "exten": "s", "priority": 1 }, "creationtime": "2018-10-23T12:36:02.671+0000", "language": "en" }, "asterisk_id": "210445d7-73bd-456a-aef2-e0ef847bfa0f", "application": "pchero_voip" }
Playback
Object representing the playback of media to a channel.
{ "properties": { "next_media_uri": { "required": false, "type": "string", "description": "If a list of URIs is being played, the next media URI to be played back." }, "target_uri": { "required": true, "type": "string", "description": "URI for the channel or bridge to play the media on" }, "language": { "type": "string", "description": "For media types that support multiple languages, the language requested for playback." }, "state": { "allowableValues": { "valueType": "LIST", "values": [ "queued", "playing", "continuing", "done" ] }, "required": true, "type": "string", "description": "Current state of the playback operation." }, "media_uri": { "required": true, "type": "string", "description": "The URI for the media currently being played back." }, "id": { "required": true, "type": "string", "description": "ID for this playback operation" } }, "id": "Playback", "description": "Object representing the playback of media to a channel" }
- id: string: ID for this playback operation.
- language: string(optional): For media types that support multiple languages, the language requested for playback.
- media_uri: string: The URI for the media currently being played back.
- next_media_uri: string(optional): If a list of URIs is being played, the next media URI to be played back.
- state: string: Current state of the playback operation.
- target_uri: string: URI for the channel or bridge to play the media on.
Example
{ "id": "1b590cfa-5880-493f-8afc-3f9dfed9022a:3f59e78f-acb2-4bd4-bcd0-23da52c1a2c2", "media_uri": "sound:https://pchero21.com/var/spool/asterisk/tts/test.wav", "target_uri": "channel:pchero-462475.572686", "language": "en", "state": "playing" }
PlaybackContinuing
Base type: Event
Event showing the continuation of a media playback operation from one media URI to the next in the list.
{ "properties": { "playback": { "required": true, "type": "Playback", "description": "Playback control object" } }, "id": "PlaybackContinuing", "description": "Event showing the continuation of a media playback operation from one media URI to the next in the list." }
- asterisk_id: string(optional): The unique ID for the Asterisk instance that raised this event.
- type: string: Indicates the type of this message.
- application: string: Name of the application receiving the event.
- timestamp: Date(optional): Time at which this event was created.
- playback: Playback: Playback control object.
Example
{ "type": "PlaybackContinuing", "playback": { "id": "5618648a-985c-4c81-a35e-32f6135b43b9", "media_uri": "sound:https://github.com/pchero/asterisk_wavs/raw/master/pcm_samples/example_pcm16_mono_8k_short.wav", "next_media_uri": "sound:https://github.com/pchero/asterisk_wavs/raw/master/pcm_samples/example_pcm16_mono_8k_short.wav", "target_uri": "channel:test-call", "language": "en", "state": "continuing" }, "asterisk_id": "42:01:0a:84:00:12", "application": "pchero_voip" }
PlaybackFinished
Base type: Event
Event showing the completion of a media playback operation.
{ "properties": { "playback": { "required": true, "type": "Playback", "description": "Playback control object" } }, "id": "PlaybackFinished", "description": "Event showing the completion of a media playback operation." }
- asterisk_id: string(optional): The unique ID for the Asterisk instance that raised this event.
- type: string: Indicates the type of this message.
- application: string: Name of the application receiving the event.
- timestamp: Date(optional): Time at which this event was created.
- playback: Playback: Playback control object.
Example
{ "type": "PlaybackFinished", "timestamp": "2019-03-07T21:18:53.043+0100", "playback": { "id": "5b8ea8c2-bf67-4282-9c10-55ebf37a07c1", "media_uri": "sound:https://github.com/pchero/asterisk-medias/raw/master/samples_codec/pcm_samples/example-mono_16bit_8khz_pcm.wav", "target_uri": "channel:test_call", "language": "en", "state": "done" }, "asterisk_id": "00:11:22:33:44:55", "application": "test" }
PlaybackStarted
Base type: Event
Event showing the start of a media playback operation.
{ "properties": { "playback": { "required": true, "type": "Playback", "description": "Playback control object" } }, "id": "PlaybackStarted", "description": "Event showing the start of a media playback operation." }
- aserisk_id: string(optional): The unique ID for the Asterisk instance that raised this event.
- type: string: Indicates the type of this message.
- application: string: Name of the application receiving the event.
- timestamp: Date(optional): Time at which this event was created.
- playback: Playback: Playback control object.
Example
{ "type": "PlaybackStarted", "timestamp": "2019-03-07T21:17:56.241+0100", "playback": { "id": "5b8ea8c2-bf67-4282-9c10-55ebf37a07c1", "media_uri": "sound:https://github.com/pchero/asterisk-medias/raw/master/samples_codec/pcm_samples/example-mono_16bit_8khz_pcm.wav", "target_uri": "channel:test_call", "language": "en", "state": "playing" }, "asterisk_id": "00:11:22:33:44:55", "application": "test" }
RecordingStarted
Example
{ "type": "RecordingStarted", "recording": { "name": "test_call", "format": "wav", "state": "recording", "target_uri": "channel:test_call" }, "asterisk_id": "42:01:0a:84:00:12", "application": "pchero" }
StasisEnd
Bast type: Event
Notification that a channel has left a Stasis application.
{ "properties": { "channel": { "required": true, "type": "Channel" } }, "id": "StasisEnd", "description": "Notification that a channel has left a Stasis application." }
- asterisk_id: string(optional): The unique ID for the Asterisk instance that raised this event.
- type: string: Indicates the type of this message.
- application: string: Name of the application receiving the event.
- timestamp: Date(Optional): Time at which this event was created.
- channel: Channel
Example
{ "type": "StasisEnd", "timestamp": "2018-10-23T12:36:11.105+0000", "channel": { "id": "pchero-462475.572686", "name": "PJSIP/pchero-voip-00001b1f", "state": "Up", "caller": { "name": "", "number": "1337" }, "connected": { "name": "", "number": "1337" }, "accountcode": "", "dialplan": { "context": "pchero-voip", "exten": "s", "priority": 2 }, "creationtime": "2018-10-23T12:36:02.671+0000", "language": "en" }, "asterisk_id": "210445d7-73bd-456a-aef2-e0ef847bfa0f", "application": "pchero_voip" }
StasisStart
Base type: Event
Notification that a channel has entered a Stasis application.
{ "properties": { "args": { "required": true, "type": "List[string]", "description": "Arguments to the application" }, "replace_channel": { "required": false, "type": "Channel" }, "channel": { "required": true, "type": "Channel" } }, "id": "StasisStart", "description": "Notification that a channel has entered a Stasis application." }
- asterisk_id: string(optional): The unique ID for the Asterisk instance that raised this event.
- type: string: Indicates the type of this message.
- application: string: Name of the application receiving the event.
- timestamp: Date(optional): Time at which this event was created.
- args: List[string]: Arguments to the application.
- channel: Channel
- replace_channel: Channel(optional)
Example
{ "type": "StasisStart", "timestamp": "2018-10-23T12:36:09.603+0000", "args": ["PCHERO_DIALED=1"], "channel": { "id": "pchero-462475.572686", "name": "PJSIP/pchero-voip-00001b1f", "state": "Up", "caller": { "name": "", "number": "1337" }, "connected": { "name": "", "number": "1337" }, "accountcode": "", "dialplan": { "context": "pchero-voip", "exten": "s", "priority": 1 }, "creationtime": "2018-10-23T12:36:02.671+0000", "language": "en" }, "asterisk_id": "210445d7-73bd-456a-aef2-e0ef847bfa0f", "application": "pchero_voip" }