<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.parspooyesh.com/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fa">
		<id>http://wiki.parspooyesh.com/index.php?action=history&amp;feed=atom&amp;title=XML-RPC</id>
		<title>XML-RPC - تاریخچهٔ ویرایش‌ها</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.parspooyesh.com/index.php?action=history&amp;feed=atom&amp;title=XML-RPC"/>
		<link rel="alternate" type="text/html" href="http://wiki.parspooyesh.com/index.php?title=XML-RPC&amp;action=history"/>
		<updated>2026-06-24T14:16:49Z</updated>
		<subtitle>تاریخچهٔ ویرایشهای صفحه در ویکی</subtitle>
		<generator>MediaWiki 1.19.0</generator>

	<entry>
		<id>http://wiki.parspooyesh.com/index.php?title=XML-RPC&amp;diff=121&amp;oldid=prev</id>
		<title>Support: صفحه‌ای جدید حاوی 'Category:Programming __TOC__ &lt;div dir=ltr lang=en&gt;   ==What is XML-RPC?== [[http://en.wikipedia.org/wiki/XML-RPC Wikipedia Article on XML-RP...' ایجاد کرد</title>
		<link rel="alternate" type="text/html" href="http://wiki.parspooyesh.com/index.php?title=XML-RPC&amp;diff=121&amp;oldid=prev"/>
				<updated>2011-09-03T07:53:58Z</updated>
		
		<summary type="html">&lt;p&gt;صفحه‌ای جدید حاوی &amp;#039;&lt;a href=&quot;/index.php/%D8%B1%D8%AF%D9%87:Programming&quot; title=&quot;رده:Programming&quot;&gt;Category:Programming&lt;/a&gt; __TOC__ &amp;lt;div dir=ltr lang=en&amp;gt;   ==What is XML-RPC?== [[http://en.wikipedia.org/wiki/XML-RPC Wikipedia Article on XML-RP...&amp;#039; ایجاد کرد&lt;/p&gt;
&lt;p&gt;&lt;b&gt;صفحهٔ جدید&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Programming]]&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is XML-RPC?==&lt;br /&gt;
[[http://en.wikipedia.org/wiki/XML-RPC Wikipedia Article on XML-RPC]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[http://www.xmlrpc.com/ XML-RPC HomePage]]&lt;br /&gt;
&lt;br /&gt;
==IBSng as an XML-RPC SERVER==&lt;br /&gt;
IBSng Composed of two major systems. The most important and critical part is a service that runs on start of the system and remains on memory. This system called core. The other is interface that shows informations to users and get the input data.&lt;br /&gt;
Everything outside core talks to core by using xml-rpc protocol. None of other systems access to database directly. Only core is allowed to connect to database. This is mandatory because core caches many informations in memory, and changing database directly doesn't invalidate the cache.&lt;br /&gt;
By default, IBSng core listens on 127.0.0.1 tcp port 1235. If you want to connect from outside to IBSng, you need to receonfigure IBSng.conf and change bind_ip directive to listen on 0.0.0.0 (all interfaces)&lt;br /&gt;
&lt;br /&gt;
===Request Format===&lt;br /&gt;
All requests to IBSng core has a method name and a single argument.&lt;br /&gt;
The method name is in format HANDLER_NAME.HANDLE_METHOD (ex user.addNewUser).&lt;br /&gt;
The single argument is an associative array that contains real arguments of handler. Associative array is represented by xml-rpc struct. Ex. &lt;br /&gt;
&amp;lt;pre&amp;gt;array(“count”=&amp;gt;1, “credit”=&amp;gt;10)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Authentication===&lt;br /&gt;
IBSng Core authenticates every request that it receives before processing. So The associative array always should contain 3 authentication parameters. &lt;br /&gt;
auth_type: Role of the requester. Can be ADMIN, NORMAL_USER, VOIP_USER or ANONYMOUS&lt;br /&gt;
auth_name: Username of  requester. Should be ANONYMOUS for ANONYMOUS  auth_type.&lt;br /&gt;
auth_pass: Password of requester.&lt;br /&gt;
&lt;br /&gt;
Trusted Clients can pass another argument used to recongnize real client ip address&lt;br /&gt;
auth_remoteaddr: Remote Address of requester.&lt;br /&gt;
&lt;br /&gt;
If client is not in trusted clients list (by default only 127.0.0.1 is), the connection ip address is used for remote_address.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ex. &lt;br /&gt;
&amp;lt;pre&amp;gt;method:user.addNewUser&lt;br /&gt;
Arguement: array (“auth_name”=&amp;gt;”system”, “auth_pass”=&amp;gt;”sys”, “auth_type”=&amp;gt;”ADMIN”,&lt;br /&gt;
”count”=&amp;gt;1, “credit”=&amp;gt;20.0,  “owner_name”=&amp;gt;”system”, “group_name”=&amp;gt;”test_group”, “credit_comment”=&amp;gt;””)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Handlers And Arguments===&lt;br /&gt;
There are plenty of registered handlers in IBSng that used by many other systems to perform needed actions. For example handler “user” is used for user management, and handler “ias” is used by and outside accouting software.&lt;br /&gt;
Each handler has some registered methods. For example handler user has “user.addNewUser” and “user.getUserInfo” among other methods. A list of all handlers and their methods can be found in XML-RPC API document.&lt;br /&gt;
&lt;br /&gt;
Some methods need a group of specific arguments be available in request associative array. '''“user.addNewUser”''' needs “count”,”credit”,”owner_name”,”group_name”,”credit_comment” always be available in request. If request was incomplete, and xml-rpc error will be returned with message incomplete request.&lt;br /&gt;
&lt;br /&gt;
Some methods has optional arguments too. “user.getUserInformation” can give client user information based on “user_id” or “normal_username” or “voip_username”. So it only needs one of these arguments to be present in request. Optional arguments are always tagged in API documentation.&lt;br /&gt;
&lt;br /&gt;
[[IBSng_Handler_Reference]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	</feed>