{"id":12161,"date":"2025-02-11T17:20:27","date_gmt":"2025-02-12T01:20:27","guid":{"rendered":"https:\/\/www.xh86.me\/?p=12161"},"modified":"2025-02-11T17:20:27","modified_gmt":"2025-02-12T01:20:27","slug":"twilio-cli%ef%bc%88%e5%91%bd%e4%bb%a4%e8%a1%8c%e5%b7%a5%e5%85%b7%ef%bc%89","status":"publish","type":"post","link":"https:\/\/www.xh86.me\/?p=12161","title":{"rendered":"Twilio CLI\uff08\u547d\u4ee4\u884c\u5de5\u5177\uff09"},"content":{"rendered":"<p>&nbsp;<\/p>\n<h1><strong>1\ufe0f\u20e3 Twilio CLI\uff08\u547d\u4ee4\u884c\u5de5\u5177\uff09<\/strong><\/h1>\n<p>Twilio \u63d0\u4f9b <strong>Twilio CLI<\/strong>\uff08Command Line Interface\uff09\uff0c\u53ef\u4ee5\u7528\u4e8e\u7ba1\u7406 SIP Trunk\u3001\u7535\u8bdd\u3001\u77ed\u4fe1\u7b49\u3002<\/p>\n<h3><strong>\ud83d\udd39 1.1 \u5b89\u88c5 Twilio CLI<\/strong><\/h3>\n<p>\u5728 Linux\u3001Mac \u6216 Windows \u7ec8\u7aef\u8fd0\u884c\uff1a<\/p>\n<pre><code class=\"language-bash\">npm install -g twilio-cli\r\ntwilio login\r\n<\/code><\/pre>\n<p>\u7136\u540e\u6309\u7167\u63d0\u793a\u8f93\u5165\u4f60\u7684 <strong>Twilio Account SID<\/strong> \u548c <strong>Auth Token<\/strong>\u3002<\/p>\n<hr \/>\n<h2><strong>2\ufe0f\u20e3 Twilio CLI \u7ef4\u62a4\u547d\u4ee4<\/strong><\/h2>\n<h3><strong>\ud83d\udd39 2.1 \u68c0\u67e5 Twilio \u8d26\u6237\u4fe1\u606f<\/strong><\/h3>\n<pre><code class=\"language-bash\">twilio api:core:accounts:list\r\n<\/code><\/pre>\n<p>\u67e5\u770b\u5f53\u524d Twilio \u8d26\u6237\u7684\u8be6\u7ec6\u4fe1\u606f\u3002<\/p>\n<hr \/>\n<h3><strong>\ud83d\udd39 2.2 \u7ba1\u7406 SIP Trunks<\/strong><\/h3>\n<h4><strong>\ud83d\udccc \u5217\u51fa\u6240\u6709 SIP Trunks<\/strong><\/h4>\n<pre><code class=\"language-bash\">twilio api:trunking:v1:sip-trunks:list\r\n<\/code><\/pre>\n<h4><strong>\ud83d\udccc \u67e5\u770b\u67d0\u4e2a SIP Trunk \u8be6\u7ec6\u4fe1\u606f<\/strong><\/h4>\n<pre><code class=\"language-bash\">twilio api:trunking:v1:sip-trunks:fetch --sid TRxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\n<\/code><\/pre>\n<p>\u5176\u4e2d <code>TRxxxxxxxxxxxxxxxxxxxxxxxxxxxx<\/code> \u662f SIP Trunk \u7684 SID\uff08\u53ef\u4ee5\u901a\u8fc7 <code>list<\/code> \u547d\u4ee4\u83b7\u53d6\uff09\u3002<\/p>\n<h4><strong>\ud83d\udccc \u521b\u5efa SIP Trunk<\/strong><\/h4>\n<pre><code class=\"language-bash\">twilio api:trunking:v1:sip-trunks:create --friendly-name \"MySIPTrunk\"\r\n<\/code><\/pre>\n<h4><strong>\ud83d\udccc \u5220\u9664 SIP Trunk<\/strong><\/h4>\n<pre><code class=\"language-bash\">twilio api:trunking:v1:sip-trunks:remove --sid TRxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\n<\/code><\/pre>\n<hr \/>\n<h3><strong>\ud83d\udd39 2.3 \u7ba1\u7406 SIP \u7ec8\u7aef\uff08SIP Domain\uff09<\/strong><\/h3>\n<h4><strong>\ud83d\udccc \u5217\u51fa\u6240\u6709 SIP Domains<\/strong><\/h4>\n<pre><code class=\"language-bash\">twilio api:sip:v1:domains:list\r\n<\/code><\/pre>\n<h4><strong>\ud83d\udccc \u83b7\u53d6\u67d0\u4e2a SIP Domain \u8be6\u7ec6\u4fe1\u606f<\/strong><\/h4>\n<pre><code class=\"language-bash\">twilio api:sip:v1:domains:fetch --sid SDxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\n<\/code><\/pre>\n<h4><strong>\ud83d\udccc \u521b\u5efa SIP Domain<\/strong><\/h4>\n<pre><code class=\"language-bash\">twilio api:sip:v1:domains:create --friendly-name \"MySIPDomain\" --domain-name \"pbx.mycompany.com\"\r\n<\/code><\/pre>\n<h4><strong>\ud83d\udccc \u5220\u9664 SIP Domain<\/strong><\/h4>\n<pre><code class=\"language-bash\">twilio api:sip:v1:domains:remove --sid SDxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\n<\/code><\/pre>\n<hr \/>\n<h3><strong>\ud83d\udd39 2.4 \u7ba1\u7406\u7535\u8bdd\u53f7\u7801<\/strong><\/h3>\n<h4><strong>\ud83d\udccc \u67e5\u770b\u8d26\u6237\u4e0b\u6240\u6709\u7535\u8bdd\u53f7\u7801<\/strong><\/h4>\n<pre><code class=\"language-bash\">twilio api:core:incoming-phone-numbers:list\r\n<\/code><\/pre>\n<h4><strong>\ud83d\udccc \u67e5\u770b\u7279\u5b9a\u7535\u8bdd\u53f7\u7801\u4fe1\u606f<\/strong><\/h4>\n<pre><code class=\"language-bash\">twilio api:core:incoming-phone-numbers:fetch --sid PNxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\n<\/code><\/pre>\n<h4><strong>\ud83d\udccc \u8d2d\u4e70\u65b0\u7535\u8bdd\u53f7\u7801<\/strong><\/h4>\n<pre><code class=\"language-bash\">twilio api:core:incoming-phone-numbers:create --phone-number +1234567890\r\n<\/code><\/pre>\n<h4><strong>\ud83d\udccc \u5220\u9664\u53f7\u7801<\/strong><\/h4>\n<pre><code class=\"language-bash\">twilio api:core:incoming-phone-numbers:remove --sid PNxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\n<\/code><\/pre>\n<hr \/>\n<h3><strong>\ud83d\udd39 2.5 \u7ba1\u7406\u901a\u8bdd\u8bb0\u5f55<\/strong><\/h3>\n<h4><strong>\ud83d\udccc \u83b7\u53d6\u6700\u8fd1\u7684\u901a\u8bdd\u8bb0\u5f55<\/strong><\/h4>\n<pre><code class=\"language-bash\">twilio api:core:calls:list\r\n<\/code><\/pre>\n<h4><strong>\ud83d\udccc \u83b7\u53d6\u7279\u5b9a\u901a\u8bdd\u8be6\u60c5<\/strong><\/h4>\n<pre><code class=\"language-bash\">twilio api:core:calls:fetch --sid CAxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\n<\/code><\/pre>\n<h4><strong>\ud83d\udccc \u7ed3\u675f\u4e00\u901a\u8fdb\u884c\u4e2d\u7684\u7535\u8bdd<\/strong><\/h4>\n<pre><code class=\"language-bash\">twilio api:core:calls:update --sid CAxxxxxxxxxxxxxxxxxxxxxxxxxxxx --status completed\r\n<\/code><\/pre>\n<hr \/>\n<h3><strong>\ud83d\udd39 2.6 \u914d\u7f6e SIP Trunk \u8def\u7531<\/strong><\/h3>\n<h4><strong>\ud83d\udccc \u6dfb\u52a0\u51fa\u7ad9\u8def\u7531<\/strong><\/h4>\n<pre><code class=\"language-bash\">twilio api:trunking:v1:sip-trunks:origination-urls:create \\\r\n  --trunk-sid TRxxxxxxxxxxxxxxxxxxxxxxxxxxxx \\\r\n  --friendly-name \"Primary Route\" \\\r\n  --sip-url \"sip:yourpbx.yourdomain.com\"\r\n<\/code><\/pre>\n<h4><strong>\ud83d\udccc \u5220\u9664\u51fa\u7ad9\u8def\u7531<\/strong><\/h4>\n<pre><code class=\"language-bash\">twilio api:trunking:v1:sip-trunks:origination-urls:remove --sid ORxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\n<\/code><\/pre>\n<hr \/>\n<h2><strong>3\ufe0f\u20e3 Twilio REST API\uff08\u7528\u4e8e\u81ea\u52a8\u5316\uff09<\/strong><\/h2>\n<p>\u5982\u679c\u4f60\u60f3\u8981 <strong>\u811a\u672c\u5316<\/strong> \u4f60\u7684 Twilio \u7ef4\u62a4\u64cd\u4f5c\uff0c\u53ef\u4ee5\u4f7f\u7528 Twilio REST API\u3002<\/p>\n<h3><strong>\ud83d\udd39 3.1 \u83b7\u53d6\u6240\u6709 SIP Trunks<\/strong><\/h3>\n<pre><code class=\"language-bash\">curl -X GET https:\/\/api.twilio.com\/2010-04-01\/Accounts\/ACxxxxxxxxxxxxxxxxxxxxxxxxxxxx\/SIP\/Trunks.json \\\r\n    -u 'ACxxxxxxxxxxxxxxxxxxxxxxxxxxxx:your_auth_token'\r\n<\/code><\/pre>\n<h3><strong>\ud83d\udd39 3.2 \u83b7\u53d6\u901a\u8bdd\u8bb0\u5f55<\/strong><\/h3>\n<pre><code class=\"language-bash\">curl -X GET https:\/\/api.twilio.com\/2010-04-01\/Accounts\/ACxxxxxxxxxxxxxxxxxxxxxxxxxxxx\/Calls.json \\\r\n    -u 'ACxxxxxxxxxxxxxxxxxxxxxxxxxxxx:your_auth_token'\r\n<\/code><\/pre>\n<h3><strong>\ud83d\udd39 3.3 \u8d2d\u4e70\u65b0\u7535\u8bdd\u53f7\u7801<\/strong><\/h3>\n<pre><code class=\"language-bash\">curl -X POST \"https:\/\/api.twilio.com\/2010-04-01\/Accounts\/ACxxxxxxxxxxxxxxxxxxxxxxxxxxxx\/IncomingPhoneNumbers.json\" \\\r\n--data-urlencode \"PhoneNumber=+1234567890\" \\\r\n-u 'ACxxxxxxxxxxxxxxxxxxxxxxxxxxxx:your_auth_token'\r\n<\/code><\/pre>\n<hr \/>\n<h2><strong>4\ufe0f\u20e3 \u901a\u8fc7 Twilio \u63a7\u5236\u53f0\uff08Web UI\uff09\u7ef4\u62a4<\/strong><\/h2>\n<p>\u5982\u679c\u4f60\u4e0d\u60f3\u4f7f\u7528 CLI \u6216 API\uff0c\u4e5f\u53ef\u4ee5\u901a\u8fc7 <strong>Twilio Console\uff08Web \u7ba1\u7406\u754c\u9762\uff09<\/strong> \u8fdb\u884c\u7ef4\u62a4\uff1a<\/p>\n<ol>\n<li>\u767b\u5f55 <a href=\"https:\/\/www.twilio.com\/console\">Twilio Console<\/a>\u3002<\/li>\n<li><strong>SIP Trunking<\/strong> \u2192 \u7ba1\u7406 SIP Trunks\u3002<\/li>\n<li><strong>Phone Numbers<\/strong> \u2192 \u8d2d\u4e70\/\u7ba1\u7406\u7535\u8bdd\u53f7\u7801\u3002<\/li>\n<li><strong>Call Logs<\/strong> \u2192 \u67e5\u770b\u901a\u8bdd\u8bb0\u5f55 &amp; \u8c03\u8bd5\u95ee\u9898\u3002<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; 1\ufe0f\u20e3 Twilio CLI\uff08\u547d\u4ee4\u884c\u5de5\u5177\uff09 Twilio \u63d0\u4f9b Twilio CLI\uff08Comma [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,3],"tags":[],"class_list":["post-12161","post","type-post","status-publish","format-standard","hentry","category-linux","category-system"],"_links":{"self":[{"href":"https:\/\/www.xh86.me\/index.php?rest_route=\/wp\/v2\/posts\/12161","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.xh86.me\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.xh86.me\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.xh86.me\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.xh86.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=12161"}],"version-history":[{"count":1,"href":"https:\/\/www.xh86.me\/index.php?rest_route=\/wp\/v2\/posts\/12161\/revisions"}],"predecessor-version":[{"id":12162,"href":"https:\/\/www.xh86.me\/index.php?rest_route=\/wp\/v2\/posts\/12161\/revisions\/12162"}],"wp:attachment":[{"href":"https:\/\/www.xh86.me\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=12161"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xh86.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=12161"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xh86.me\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=12161"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}