Graag wil ik de telefonische beschikbaarheid van onze medewerkers op de website weergeven. Daarvoor heb ik een extensie van de 0900 provider ontvangen. Ook heb ik de benodigde codes. Alleen....ik kom er niet uit hoe ik het moet installeren. Heb al van alles geprobeerd..Met sourcerer krijg ik het niet voor elkaar.
Ik zou denk ik een php kunnen maken, maar ik begrijp niet welk deel ik waar moet plaatsen.
De website is gebouwd met Joomla. Ik hoop dat iemand me kan helpen.
Dan moeten we toch wat meer weten over de codes (scripting) die je gekregen hebt.
Voor nu is het echt zoeken naar een speld in een hooiberg.
De Agent Availability API is bedoelt om servicenummer eigenaren een low-level toegang te geven tot Medewerker Statussen ten behoeve van custom implementaties in eigen software. Hieronder vindt u een overzicht van de beschikbare calls en te verwachten resultaten.

ivr.getAgentAvail

IN
accountCode - account identifier
extensionId - agent/extension identifier
OUT
available - whether the agent is enabled (0 = no, 1 = yes)
availReason - Additional information about the status of the agent (eg "paused" or "handling")
extension the call-out of the agent

Hieronder de link naar de documentatie.
https://belfabriek.zendesk.com/attachments/token/eqw464u1ejba4ms/?name=+Agent+Availability+API+documentie.pdf
Heb je al wat geprobeerd, en zo ja, wat?
En heb je ook al aan hun gevraagd of gezocht of ze een voorbeeld script hebben? We moeten wel weten hoe je die acties van hen kan aanroepen.
Ik weet niet echt zo wat Sourcerer is, maar ik vermoed dat je het script niet zomaar in Joomla kan krijgen zonder een hoop toevoegingen.

Dan blijft nog steeds de vraag hoe het echte script van de Belfabriek eruit ziet.

Indien je de kennis niet machtig genoeg bent, lijkt het mij verstandig om een vacature aan te maken in het Vacature-forum op PHPhulp (lees wel de voorwaarden in het forum).
Dit is toch het script?

HTTP Post via XML RPC.
XMLRPC Server van de klant post een XMLRPC pakket naar de opgegeven URL. De “function name” moet
opgegeven worden.
Voorbeeld van een XMLRPC bericht naar onze XMLRPC Server:

<?xml version="1.0"?>
 <methodCall>
 <methodName>functie.naam</methodName> 
 <params>
 <param>
 <value> 
 <struct>
 <member> 
 <name>param1</name> 
 <value><string>value1</string></value>
 </member>
 <member>
 <name>param2</name> 
 <value><string>value2</string></value>
 </member>
 </struct>
 </value>
 </param>
 </params>
 </methodCall>
Onze XMLRPC Server dient altijd alles in het juiste XMLRPC formaat te ontvangen. Verder verwacht de 
XMLRPC server alle parameters als string.
Voorbeeld van een XMLRPC respons van onze XMLRPC Server:
<?xml version="1.0"?> 
 <methodResponse>
 <params> 
 <param>
 <value> 
 <struct>
 <member> 
 <name>param1</name>
 <value><string>value1</string></value>
 </member>
 <member> 
 <name>param2</name>
 <value><string>value2</string></value>
 </member>
 </struct> 
 </value>
 </param> 
 </params>
</methodResponse>
API Documentatie
ivr.getAgentAvail
IN: 
<?xml version="1.0"?> 
 <methodCall>
 <methodName>ivr.getAgentAvail</methodName> 
 <params> 
 <param>
 <value> 
 <struct>
 <member> 
 <name>accountCode</name>
 <value><string>value1</string></value>
 </member>
 <member>
 <name>extensionID</name>
 <value><string>value2</string></value> 
 </member>
 </struct>
 </value>
 </param>
 </params>
 </methodCall>
UIT: 
<?xml version="1.0"?>
 <methodResponse>
 <params>
 <param>
 <value>
 <struct>
 <member>
 <name>available</name>
 <value> <string>value</string> </value>
 </member>
 <member>
 <name>availReason</name>
 <value> <string>value</string> </value>
 </member>
 <member>
 <name>extension</name>
 <value> <string>value</string> </value>
 </member>
 </struct>
 </value>
 </param>
 </params>
 </methodResponse>
general.getExtensionStatus
IN:
<?xml version="1.0"?>
 <methodCall>
 <methodName>general.getExtensionStatus</methodName>
 <params>
 <param>
 <value>
 <struct>
 <member>
 <name>supId</name>
 <value><string>1</string></value>
 </member>
 <member>
 <name>manId</name>
 <value><string>2</string></value>
 </member>
 <member>
 <name>custId</name>
 <value><string>1055</string></value>
 </member>
 <member>
 <name>extId</name>
 <value><string>10000</string></value>
 </member>
 </struct>
 </value>
 </param>
 </params>
 </methodCall>
UIT: 
<?xml version="1.0"?>
 <methodResponse>
 <params>
 <param>
 <value>
 <struct>
 <member>
 <name>result</name>
 <value> <string>Idle</string> </value>
 </member>
 </struct>
 </value>
 </param>
 </params>
 </methodResponse>De Agent Availability API is bedoelt servicenummer eigenaren een low-level toegang te geven tot Agent 
Statussen ten behoeve van custom implementaties in eigen software. Hieronder vindt u een overzicht 
van de beschikbare calls en te verwachten resultaten.
ivr.getAgentAvail
Controleert de status van een agent/extension en geeft deze terug. 
URL https://mijn.belfabriek.nl/xml/agent/xml.asp
IN accountCode identifier van account
 extensionId identifier van de agent/extension
UIT available of de agent is ingeschakeld (0=nee, 1=ja)
 availReason aanvullende informatie mbt de status van de agent (bv. “paused” of 
 “handling”)
 extension het uitbelnummer van de agent
general.getExtensionStatus
Geeft aan of een bepaalde extension via ivrManager in gesprek is.
supId = x1 
manId = x2 
custId = x3 
extid = x5
URL https://mijn.belfabriek.nl/xml/general/xml.asp
IN supId Id van de supervisor
 manId Id van de manager
 custId Id van de customer
 extId Id van de extension 
UIT status calling - verbinding wordt opgezet
 called - verbinding gelukt 
 wrapup - extension is in wrapup
ALGEMEEN
HTTP Post via XML RPC.
XMLRPC Server van de klant post een XMLRPC pakket naar de opgegeven URL. De “function name” moet 
opgegeven worden.
Voorbeeld van een XMLRPC bericht naar onze XMLRPC Server:
<?xml version="1.0"?>
 <methodCall>
 <methodName>functie.naam</methodName> 
 <params>
 <param>
 <value> 
 <struct>
 <member> 
 <name>param1</name> 
 <value><string>value1</string></value>
 </member>
 <member>
 <name>param2</name> 
 <value><string>value2</string></value>
 </member>
 </struct>
 </value>
 </param>
 </params>
 </methodCall>
Onze XMLRPC Server dient altijd alles in het juiste XMLRPC formaat te ontvangen. Verder verwacht de 
XMLRPC server alle parameters als string.
Voorbeeld van een XMLRPC respons van onze XMLRPC Server:
<?xml version="1.0"?> 
 <methodResponse>
 <params> 
 <param>
 <value> 
 <struct>
 <member> 
 <name>param1</name>
 <value><string>value1</string></value>
 </member>
 <member> 
 <name>param2</name>
 <value><string>value2</string></value>
 </member>
 </struct> 
 </value>
 </param> 
 </params>
</methodResponse>
API Documentatie
ivr.getAgentAvail
IN: 
<?xml version="1.0"?> 
 <methodCall>
 <methodName>ivr.getAgentAvail</methodName> 
 <params> 
 <param>
 <value> 
 <struct>
 <member> 
 <name>accountCode</name>
 <value><string>value1</string></value>
 </member>
 <member>
 <name>extensionID</name>
 <value><string>value2</string></value> 
 </member>
 </struct>
 </value>
 </param>
 </params>
 </methodCall>
UIT: 
<?xml version="1.0"?>
 <methodResponse>
 <params>
 <param>
 <value>
 <struct>
 <member>
 <name>available</name>
 <value> <string>value</string> </value>
 </member>
 <member>
 <name>availReason</name>
 <value> <string>value</string> </value>
 </member>
 <member>
 <name>extension</name>
 <value> <string>value</string> </value>
 </member>
 </struct>
 </value>
 </param>
 </params>
 </methodResponse>
general.getExtensionStatus
IN:
<?xml version="1.0"?>
 <methodCall>
 <methodName>general.getExtensionStatus</methodName>
 <params>
 <param>
 <value>
 <struct>
 <member>
 <name>supId</name>
 <value><string>1</string></value>
 </member>
 <member>
 <name>manId</name>
 <value><string>2</string></value>
 </member>
 <member>
 <name>custId</name>
 <value><string>1055</string></value>
 </member>
 <member>
 <name>extId</name>
 <value><string>10000</string></value>
 </member>
 </struct>
 </value>
 </param>
 </params>
 </methodCall>
UIT: 
<?xml version="1.0"?>
 <methodResponse>
 <params>
 <param>
 <value>
 <struct>
 <member>
 <name>result</name>
 <value> <string>Idle</string> </value>
 </member>
 </struct>
 </value>
 </param>
 </params>
 </methodResponse>De Agent Availability API is bedoelt servicenummer eigenaren een low-level toegang te geven tot Agent 
Statussen ten behoeve van custom implementaties in eigen software. Hieronder vindt u een overzicht 
van de beschikbare calls en te verwachten resultaten.
ivr.getAgentAvail
Controleert de status van een agent/extension en geeft deze terug. 
URL https://mijn.belfabriek.nl/xml/agent/xml.asp
IN accountCode identifier van account
 extensionId identifier van de agent/extension
UIT available of de agent is ingeschakeld (0=nee, 1=ja)
 availReason aanvullende informatie mbt de status van de agent (bv. “paused” of 
 “handling”)
 extension het uitbelnummer van de agent
general.getExtensionStatus
Geeft aan of een bepaalde extension via ivrManager in gesprek is.
supId = x1 
manId = x2 
custId = x3 
extid = x5
URL https://mijn.belfabriek.nl/xml/general/xml.asp
IN supId Id van de supervisor
 manId Id van de manager
 custId Id van de customer
 extId Id van de extension 
UIT status calling - verbinding wordt opgezet
 called - verbinding gelukt 
 wrapup - extension is in wrapup
ALGEMEEN
HTTP Post via XML RPC.
XMLRPC Server van de klant post een XMLRPC pakket naar de opgegeven URL. De “function name” moet 
opgegeven worden.
Voorbeeld van een XMLRPC bericht naar onze XMLRPC Server:
<?xml version="1.0"?>
 <methodCall>
 <methodName>functie.naam</methodName> 
 <params>
 <param>
 <value> 
 <struct>
 <member> 
 <name>param1</name> 
 <value><string>value1</string></value>
 </member>
 <member>
 <name>param2</name> 
 <value><string>value2</string></value>
 </member>
 </struct>
 </value>
 </param>
 </params>
 </methodCall>
Onze XMLRPC Server dient altijd alles in het juiste XMLRPC formaat te ontvangen. Verder verwacht de 
XMLRPC server alle parameters als string.
Voorbeeld van een XMLRPC respons van onze XMLRPC Server:
<?xml version="1.0"?> 
 <methodResponse>
 <params> 
 <param>
 <value> 
 <struct>
 <member> 
 <name>param1</name>
 <value><string>value1</string></value>
 </member>
 <member> 
 <name>param2</name>
 <value><string>value2</string></value>
 </member>
 </struct> 
 </value>
 </param> 
 </params>
</methodResponse>
API Documentatie
ivr.getAgentAvail
IN: 
<?xml version="1.0"?> 
 <methodCall>
 <methodName>ivr.getAgentAvail</methodName> 
 <params> 
 <param>
 <value> 
 <struct>
 <member> 
 <name>accountCode</name>
 <value><string>value1</string></value>
 </member>
 <member>
 <name>extensionID</name>
 <value><string>value2</string></value> 
 </member>
 </struct>
 </value>
 </param>
 </params>
 </methodCall>
UIT: 
<?xml version="1.0"?>
 <methodResponse>
 <params>
 <param>
 <value>
 <struct>
 <member>
 <name>available</name>
 <value> <string>value</string> </value>
 </member>
 <member>
 <name>availReason</name>
 <value> <string>value</string> </value>
 </member>
 <member>
 <name>extension</name>
 <value> <string>value</string> </value>
 </member>
 </struct>
 </value>
 </param>
 </params>
 </methodResponse>
general.getExtensionStatus
IN:
<?xml version="1.0"?>
 <methodCall>
 <methodName>general.getExtensionStatus</methodName>
 <params>
 <param>
 <value>
 <struct>
 <member>
 <name>supId</name>
 <value><string>1</string></value>
 </member>
 <member>
 <name>manId</name>
 <value><string>2</string></value>
 </member>
 <member>
 <name>custId</name>
 <value><string>1055</string></value>
 </member>
 <member>
 <name>extId</name>
 <value><string>10000</string></value>
 </member>
 </struct>
 </value>
 </param>
 </params>
 </methodCall>
UIT: 
<?xml version="1.0"?>
 <methodResponse>
 <params>
 <param>
 <value>
 <struct>
 <member>
 <name>result</name>
 <value> <string>Idle</string> </value>
 </member>
 </struct>
 </value>
 </param>
 </params>
 </methodResponse>


Dat is geen script. Dit is niets anders dan een voorbeeld van een bericht die je naar de server van BelFabriek stuurt.

Dus vraag de helpdesk eens om een script die dit kan afhandelen, of wat meer documentatie over op welke manier je die aanroepen het best kan doen.
Ik heb een kompleete wordpress belfabriek plugin gemaakt, ik kan voor joomla het zelfde doen.


<?php

$supId  = 'xxxx'; 
$manId  = 'xxxx'; 
$custId = 'xxxxxx'; 
$extId  = 'xxxxxx'; 

$url    = 'http://api1.belfabriek.nl/xml/agent/xml.asp'; 
$xml_data = "
<?xml version=\"1.0\" encoding=\"iso-8859-1\"?> 
    <methodCall> 
        <methodName>general.getExtensionStatus</methodName> 
        <params>
            <param> 
                <value> 
                    <struct> 
                        <member><name>supId </name> <value><string>".$supId." </string></value></member> 
                        <member><name>manId </name> <value><string>".$manId." </string></value> </member> 
                        <member><name>custId</name> <value><string>".$custId."</string></value> </member> 
                        <member><name>extId </name> <value><string>".$extId." </string></value> </member> 
                    </struct> 
                </value> 
            </param> 
         </params> 
      </methodCall>
"; 
$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, $url); 
curl_setopt($curl, CURLOPT_PORT , 80); 
curl_setopt($curl, CURLOPT_POST, 1); 
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: text/xml')); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $xml_data); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
$data = curl_exec($curl); 
curl_close($curl); 


$xml = new SimpleXMLElement($data);

//de bel status van je werknemer, deze kun je dus opslaan in je database werknemers
$status = $xml->params->param->value->struct->member->value->string;
die();

?>



Dit is nog maar een simpel voorbeeld

maar om dit allemaal werkend te krijgen moet je wel met een database en jquery en ajax en json kunnen werken anders word het toch wel vrij lastig om het op je website te krijgen met een auto update enz.

Mocht je hulp nodig hebben stuur maar een pm dan kunnen we kijken wat ik voor je kan betekenen.
jQuery is niet verplicht verder, met good-old JavaScript kan je ook JSON verwerken.
Hopelijk heeft de topicstarter er nog wat aan ;-)

Reageren