{"id":23576,"date":"2024-12-26T17:08:25","date_gmt":"2024-12-26T08:08:25","guid":{"rendered":"https:\/\/agrimo.jp\/wp\/?page_id=23576"},"modified":"2024-12-26T19:04:32","modified_gmt":"2024-12-26T10:04:32","slug":"4-freepbx%e3%81%abami%e3%81%a7%e3%82%a2%e3%82%af%e3%82%bb%e3%82%b9%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b%e3%80%82%ef%bc%88c-net-sdk-9-0%ef%bc%89","status":"publish","type":"page","link":"https:\/\/agrimo.jp\/wp\/?page_id=23576","title":{"rendered":"4.FreePBX\u306bAMI\u3067\u30a2\u30af\u30bb\u30b9\u3057\u3066\u307f\u308b\u3002\uff08c# .Net SDK 9.0\uff09"},"content":{"rendered":"<p>AMI\uff08Asterisk Manager Interface\uff09\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001Asterisk\u306e\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u30a4\u30d9\u30f3\u30c8\u3092\u76e3\u8996\u3057\u3001\u5236\u5fa1\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u4f8b\u3048\u3070\u3001\u7740\u4fe1\u901a\u77e5\u3084\u901a\u8a71\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\u5909\u66f4\u306a\u3069\u306e\u30a4\u30d9\u30f3\u30c8\u3092\u53d7\u3051\u53d6\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>&nbsp;<\/p>\n<p>\uff11\uff09Asterisk\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3092\u7de8\u96c6<\/p>\n<p style=\"padding-left: 40px;\"><code>\/etc\/asterisk\/manager.conf<\/code> \u30d5\u30a1\u30a4\u30eb\u3092\u7de8\u96c6\u3057\u3001AMI\u306e\u30e6\u30fc\u30b6\u30fc\u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u3002<\/p>\n<p style=\"padding-left: 80px;\">[general]<br \/>\nenabled = yes<br \/>\nport = 5038<br \/>\nbindaddr = 0.0.0.0<\/p>\n<p style=\"padding-left: 80px;\">[myuser]<br \/>\nsecret = mypassword<br \/>\nread = all<br \/>\nwrite = all<\/p>\n<p>&nbsp;<\/p>\n<p>\uff12\uff09AMI\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306e\u4f5c\u6210<\/p>\n<p style=\"padding-left: 40px;\">C#\u3067AMI\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3092\u4f5c\u6210\u3057\u3001\u30a4\u30d9\u30f3\u30c8\u3092\u53d7\u3051\u53d6\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p style=\"padding-left: 40px;\">\u4ee5\u4e0b\u306f\u3001C#\u3067AMI\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3092\u4f5c\u6210\u3059\u308b\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9\u3067\u3059\u3002<\/p>\n<pre class=\"lang:c# decode:true \">using System;\r\nusing System.Net.Sockets;\r\nusing System.Text;\r\n\r\nclass Program\r\n{\r\n    static void Main(string[] args)\r\n    {\r\n        string host = \"&lt;Asterisk\u306eIP\u30a2\u30c9\u30ec\u30b9&gt;\";\r\n        int port = 5038;\r\n        string username = \"myuser\";\r\n        string password = \"mypassword\";\r\n\r\n        using (TcpClient client = new TcpClient(host, port))\r\n        using (NetworkStream stream = client.GetStream())\r\n        {\r\n            \/\/ \u30ed\u30b0\u30a4\u30f3\r\n            string loginCommand = $\"Action: Login\\r\\nUsername: {username}\\r\\nSecret: {password}\\r\\n\\r\\n\";\r\n            byte[] loginBytes = Encoding.ASCII.GetBytes(loginCommand);\r\n            stream.Write(loginBytes, 0, loginBytes.Length);\r\n\r\n            \/\/ \u30a4\u30d9\u30f3\u30c8\u306e\u53d7\u4fe1\r\n            byte[] buffer = new byte[1024];\r\n            int bytesRead;\r\n            while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) &gt; 0)\r\n            {\r\n                string response = Encoding.ASCII.GetString(buffer, 0, bytesRead);\r\n                Console.WriteLine(response);\r\n            }\r\n        }\r\n    }\r\n}\r\n<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>AMI\uff08Asterisk Manager Interface\uff09\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001Asterisk\u306e\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u30a4\u30d9 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-23576","page","type-page","status-publish","hentry"],"wppr_data":{"cwp_meta_box_check":"No"},"_links":{"self":[{"href":"https:\/\/agrimo.jp\/wp\/index.php?rest_route=\/wp\/v2\/pages\/23576","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/agrimo.jp\/wp\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/agrimo.jp\/wp\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/agrimo.jp\/wp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/agrimo.jp\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=23576"}],"version-history":[{"count":10,"href":"https:\/\/agrimo.jp\/wp\/index.php?rest_route=\/wp\/v2\/pages\/23576\/revisions"}],"predecessor-version":[{"id":23648,"href":"https:\/\/agrimo.jp\/wp\/index.php?rest_route=\/wp\/v2\/pages\/23576\/revisions\/23648"}],"wp:attachment":[{"href":"https:\/\/agrimo.jp\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=23576"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}