- Joined
- Apr 1, 2024
- Messages
- 2
- Reaction score
- 0
I've been working with the V20 Call Control API, so far i have been able to initiate a phone call between two extensions via the makecall method, but i cant seem to answer or pickup the call using the Call Control API. I have seen throughout the forums that this is still under development. Is the AnswerAsync method implemented or is it currently just serving as a placeholder? Im a fullstack JavaScript developer over 15 years, this would be my first rodeo with a native language since 2008 using objective-c and java creating mobile apps. I'm feeling fairly confident in my ability to dive into the PhoneSystem class that TCX.PBXAPI exposes but there is not documentation on it.
Can someone point me in the right direction on how i would as a new native developer have an understanding of that PhoneSystem class exposed by 3CX?
If this is not 100% complete yet, can we get an ETA on its completion?
Here is what i have tried.
First i initiate the call from extension 100 to 101 (100 is on web 101 is on my iphone) then i view the info and attempt to pickup the call.
command
callcontrol info dn=100
output
command
callcontrol pickup dn=100 dnfrom=101
The issue is that nothing happens, it just sends me to voicemail.
I would also like to note that i am asking about the AnswerAsync method being completed, i see that the `pickup` command does not use that AnswerAsync method, so i attempted to use the answer command and this was my outcome.
Can someone point me in the right direction on how i would as a new native developer have an understanding of that PhoneSystem class exposed by 3CX?
If this is not 100% complete yet, can we get an ETA on its completion?
Here is what i have tried.
First i initiate the call from extension 100 to 101 (100 is on web 101 is on my iphone) then i view the info and attempt to pickup the call.
command
callcontrol info dn=100
output
Bash:
Executing callcontrol.info(dn=101)
DN=101-Wextension.37: 101
-----DEVICE=sip:[email protected]:5483;rinstance=0e4ec52b0381e86d
Wconnection.24
AttachedData=System.Collections.Generic.Dictionary`2[System.String,System.String]
LastChangeStatus=04/01/2024 22:49:37
IsOutbound=False
IsInbound=True
DialedNumber=
ExternalParty=100
InternalParty=Wextension.29: 100
Status=Ringing
HistoryIDOfTheCall=7895da9b8e010000_7
OriginatedBy=Wroutepoint.20: ROUTER
ReferredBy=0
CallConnectionID=3
CallID=7
OnBehalfOf=
DN=Wextension.37: 101
OtherCallParties=TCX.Configuration.Interop.Wconnection[]
RecordingState=Stop
PartyConnectionID=22
ReferredByDN=
OfferProvided=True
RouteTarget=
ID=24
HasAttached=False
AttachedData:
prevCall=0
prevLeg=0
devcontact=sip:[email protected]:5483;rinstance=0e4ec52b0381e86d
public_push_pickupinfo=GzCcmY1VsSSSYliQEwALTg..;from-tag=523cf310;to-tag=65560d05
public_push_callerid=100
public_push_callername=Russell, Aaron
[email protected]:5482
sip_dialog_set_id=GzCcmY1VsSSSYliQEwALTg..0523cf310
extnumber=100
chid=7895da9b8e010000_7
Operation Completed
Sample execution time - 00:00:00.0443564
command
callcontrol pickup dn=100 dnfrom=101
Bash:
Executing callcontrol.pickup(dn=100, dnfrom=101)
Operation Completed
Success(NotSpecified:Connected):
Wconnection.25
AttachedData=System.Collections.Generic.Dictionary`2[System.String,System.String]
LastChangeStatus=04/01/2024 22:50:36
IsOutbound=False
IsInbound=True
DialedNumber=
ExternalParty=100
InternalParty=Wextension.37: 101
Status=Ringing
HistoryIDOfTheCall=7895da9b8e010000_7
OriginatedBy=
ReferredBy=0
CallConnectionID=4
CallID=7
OnBehalfOf=
DN=Wextension.29: 100
OtherCallParties=TCX.Configuration.Interop.Wconnection[]
RecordingState=Stop
PartyConnectionID=24
ReferredByDN=
OfferProvided=False
RouteTarget=
ID=25
HasAttached=False
AttachedData:
prevCall=0
prevLeg=0
devcontact=sip:[email protected]:5483;rinstance=388197924134374c
public_push_pickupinfo=VXLEmThwEv-tIqh30mbQcQ..;from-tag=a37b714c;to-tag=84359f2d
public_push_callerid=100
public_push_callername=Russell, Aaron
sip_dialog_set_id=VXLEmThwEv-tIqh30mbQcQ..0a37b714c
extnumber=100
chid=7895da9b8e010000_7
Sample execution time - 00:00:00.1232502
The issue is that nothing happens, it just sends me to voicemail.
I would also like to note that i am asking about the AnswerAsync method being completed, i see that the `pickup` command does not use that AnswerAsync method, so i attempted to use the answer command and this was my outcome.
Bash:
>callcontrol info dn=101
Executing callcontrol.info(dn=101)
DN=101-Wextension.37: 101
-----DEVICE=sip:[email protected]:5483;rinstance=0e4ec52b0381e86d
Wconnection.10
AttachedData=System.Collections.Generic.Dictionary`2[System.String,System.String]
LastChangeStatus=04/01/2024 22:26:36
IsOutbound=False
IsInbound=True
DialedNumber=
ExternalParty=100
InternalParty=Wextension.29: 100
Status=Ringing
HistoryIDOfTheCall=4283c59b8e010000_3
OriginatedBy=Wroutepoint.20: ROUTER
ReferredBy=0
CallConnectionID=3
CallID=3
OnBehalfOf=
DN=Wextension.37: 101
OtherCallParties=TCX.Configuration.Interop.Wconnection[]
RecordingState=Stop
PartyConnectionID=8
ReferredByDN=
OfferProvided=True
RouteTarget=
ID=10
HasAttached=False
AttachedData:
prevCall=0
prevLeg=0
devcontact=sip:[email protected]:5483;rinstance=0e4ec52b0381e86d
public_push_pickupinfo=4MeGOZky4_2hv3St1IRZGA..;from-tag=2328b10b;to-tag=381a6c1b
public_push_callerid=100
public_push_callername=Russell, Aaron
[email protected]:5482
sip_dialog_set_id=4MeGOZky4_2hv3St1IRZGA..02328b10b
extnumber=100
chid=4283c59b8e010000_3
Operation Completed
Sample execution time - 00:00:00.0035566
>callcontrol answer dn=101
Executing callcontrol.answer(dn=101)
Action has been failed: Unexpected exception
System.Exception: Unknown action(answer) or it is not applicable (at the moment) on Wextension.37: 101
at OMSamples.Samples.CallControl.<>c__DisplayClass6_0.<<Run>b__0>d.MoveNext() in /root/OMSamples/Samples/V20CallControlAPI.cs:line 227
Sample execution time - 00:00:00.0013261
Sample 'callcontrol.answer(dn=101)' execution failed System.AggregateException: One or more errors occurred. (Unknown action(answer) or it is not applicable (at the moment) on Wextension.37: 101
)
---> System.Exception: Unknown action(answer) or it is not applicable (at the moment) on Wextension.37: 101
at OMSamples.Samples.CallControl.<>c__DisplayClass6_0.<<Run>b__0>d.MoveNext() in /root/OMSamples/Samples/V20CallControlAPI.cs:line 227
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
at OMSamples.Samples.CallControl.Run(PhoneSystem ps, String action, Dictionary`2 parameters) in /root/OMSamples/Samples/V20CallControlAPI.cs:line 86
at OMSamples.SampleStarter.ExecuteSample(ISample sample, PhoneSystem ps, String action, Dictionary`2 additional_parameters) in /root/OMSamples/SampleStarter.cs:line 122
at OMSamples.SampleStarter.StartSample(PhoneSystem ps, String sample_name, String action_name, Dictionary`2 additional_parameters) in /root/OMSamples/SampleStarter.cs:line 138
at OMSamples.SamplesConsole.Run(PhoneSystem ps) in /root/OMSamples/Samples/Console.cs:line 27
System.AggregateException: One or more errors occurred. (Unknown action(answer) or it is not applicable (at the moment) on Wextension.37: 101
)
---> System.Exception: Unknown action(answer) or it is not applicable (at the moment) on Wextension.37: 101
at OMSamples.Samples.CallControl.<>c__DisplayClass6_0.<<Run>b__0>d.MoveNext() in /root/OMSamples/Samples/V20CallControlAPI.cs:line 227
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
at OMSamples.Samples.CallControl.Run(PhoneSystem ps, String action, Dictionary`2 parameters) in /root/OMSamples/Samples/V20CallControlAPI.cs:line 86
at OMSamples.SampleStarter.ExecuteSample(ISample sample, PhoneSystem ps, String action, Dictionary`2 additional_parameters) in /root/OMSamples/SampleStarter.cs:line 122
at OMSamples.SampleStarter.StartSample(PhoneSystem ps, String sample_name, String action_name, Dictionary`2 additional_parameters) in /root/OMSamples/SampleStarter.cs:line 138
at OMSamples.SamplesConsole.Run(PhoneSystem ps) in /root/OMSamples/Samples/Console.cs:line 27
Last edited: