Hi. My name is Ian Wesson. I am working on a plugin for OpenACD that
allows for third-party softphone integration via a Restful API. For
example, a softphone could call the URI:
http://localhost:8383/transfer?from=201&to=200
to transfer the call agent 201 is on to agent 200. This should also
(inside of OpenACD) update the agent states for agents 200 and 201 so
that an OACD_Hop plugin would send out updated state changes to
RabbitMQ
The problems I've been running into seem to be that the code in
OpenACD is incomplete for (1) initiating/executing an outbound call,
(2) spying, and (3) transferring.
(Although preferable) I do not find it necessary to always do (1),
(2), and (3) completely through OpenACD, as long as the agent states
are updated in such a way that, say, OACD_Hop recieves the update that
(1), and/or (2), and/or (3) have occured.
Any help on accomplishing this would be greatly appreciated. If it
makes any difference, I plan contributing my code for this back to the
community (if I can get it to work). Here is the bulk of what I have
so far. It is started as a plugin to OpenACD:
http://pastebin.com/KTDTQuPS
Please take a close look at the functions
handle_request("/transfer", Req),
handle_request("/spy" ++ _Rest, Req), and
handle_request("/dial" ++ _Rest, Req)
as those are the functions I need the most help with.