<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>http://www.voip-info.jp/index.php?action=history&amp;feed=atom&amp;title=Chan_sip_hikarihgw</id>
	<title>Chan sip hikarihgw - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="http://www.voip-info.jp/index.php?action=history&amp;feed=atom&amp;title=Chan_sip_hikarihgw"/>
	<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Chan_sip_hikarihgw&amp;action=history"/>
	<updated>2026-05-12T17:11:06Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Chan_sip_hikarihgw&amp;diff=10588&amp;oldid=prev</id>
		<title>2017年11月24日 (金) 05:34にTakahashiによる</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Chan_sip_hikarihgw&amp;diff=10588&amp;oldid=prev"/>
		<updated>2017-11-24T05:34:19Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2017年11月24日 (金) 14:34時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l158&quot;&gt;158行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;158行目:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   #define DEFAULT_MAX_SE            1800   /*!&amp;lt; Session-Timer Default Session-Expires period (RFC 4028) */&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   #define DEFAULT_MAX_SE            1800   /*!&amp;lt; Session-Timer Default Session-Expires period (RFC 4028) */&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   #define DEFAULT_MIN_SE            90     /*!&amp;lt; Session-Timer Default Min-SE period (RFC 4028) */&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   #define DEFAULT_MIN_SE            90     /*!&amp;lt; Session-Timer Default Min-SE period (RFC 4028) */&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nopre&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pre&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Takahashi</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Chan_sip_hikarihgw&amp;diff=10575&amp;oldid=prev</id>
		<title>Takahashi: ページの作成:「&lt;pre&gt; *** channels/chan_sip.c.bakup   2014-12-02 22:12:47.269411205 +0900 --- channels/chan_sip.c 2014-12-02 22:41:42.527274187 +0900 *************** *** 817,822 **** ---...」</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Chan_sip_hikarihgw&amp;diff=10575&amp;oldid=prev"/>
		<updated>2017-11-22T10:37:44Z</updated>

		<summary type="html">&lt;p&gt;ページの作成:「&amp;lt;pre&amp;gt; *** channels/chan_sip.c.bakup   2014-12-02 22:12:47.269411205 +0900 --- channels/chan_sip.c 2014-12-02 22:41:42.527274187 +0900 *************** *** 817,822 **** ---...」&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
*** channels/chan_sip.c.bakup   2014-12-02 22:12:47.269411205 +0900&lt;br /&gt;
--- channels/chan_sip.c 2014-12-02 22:41:42.527274187 +0900&lt;br /&gt;
***************&lt;br /&gt;
*** 817,822 ****&lt;br /&gt;
--- 817,826 ----&lt;br /&gt;
   */&lt;br /&gt;
  static int can_parse_xml;&lt;br /&gt;
&lt;br /&gt;
+ /* Hikari denwa HGW HACK */&lt;br /&gt;
+ static char global_hikari_hgw[MAX_HGWS][20];&lt;br /&gt;
+ static int  global_hikari_hgw_cnt = 0;&lt;br /&gt;
+&lt;br /&gt;
  /*! \name Object counters @{&lt;br /&gt;
   *&lt;br /&gt;
   * \bug These counters are not handled in a thread-safe way ast_atomic_fetchadd_int()&lt;br /&gt;
***************&lt;br /&gt;
*** 1301,1306 ****&lt;br /&gt;
--- 1305,1311 ----&lt;br /&gt;
  static char *sip_unregister(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a);&lt;br /&gt;
  static char *sip_show_settings(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a);&lt;br /&gt;
  static char *sip_show_mwi(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a);&lt;br /&gt;
+ static char *sip_show_hikarihgw(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a);&lt;br /&gt;
  static const char *subscription_type2str(enum subscriptiontype subtype) attribute_pure;&lt;br /&gt;
  static const struct cfsubscription_types *find_subscription_type(enum subscriptiontype subtype);&lt;br /&gt;
  static char *complete_sip_peer(const char *word, int state, int flags2);&lt;br /&gt;
***************&lt;br /&gt;
*** 18970,18975 ****&lt;br /&gt;
--- 18975,19009 ----&lt;br /&gt;
  #undef FORMAT2&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
+ /*! \brief Show registered HGWs */&lt;br /&gt;
+ static char *sip_show_hikarihgw(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)&lt;br /&gt;
+ {&lt;br /&gt;
+       int     tmp_i;&lt;br /&gt;
+&lt;br /&gt;
+       switch (cmd) {&lt;br /&gt;
+          case CLI_INIT:&lt;br /&gt;
+                  e-&amp;gt;command = &amp;quot;sip show hikarihgw&amp;quot;;&lt;br /&gt;
+                  e-&amp;gt;usage =&lt;br /&gt;
+                          &amp;quot;Usage: sip show hikarihgw\n&amp;quot;&lt;br /&gt;
+                          &amp;quot;       List Hikari-denwa HGWS(s) settings.\n&amp;quot;;&lt;br /&gt;
+                  return NULL;&lt;br /&gt;
+          case CLI_GENERATE:&lt;br /&gt;
+                  return NULL;&lt;br /&gt;
+          }&lt;br /&gt;
+&lt;br /&gt;
+        if (a-&amp;gt;argc != 3)&lt;br /&gt;
+                return CLI_SHOWUSAGE;&lt;br /&gt;
+        if (global_hikari_hgw_cnt == 0){&lt;br /&gt;
+                ast_cli(a-&amp;gt;fd,&amp;quot;No Hikari-denwa HGW(s)\n&amp;quot;);&lt;br /&gt;
+        } else {&lt;br /&gt;
+                ast_cli(a-&amp;gt;fd,&amp;quot;Hikari-denwa HGW at ..\n&amp;quot;);&lt;br /&gt;
+                for (tmp_i=0;tmp_i&amp;lt;global_hikari_hgw_cnt;tmp_i++){&lt;br /&gt;
+                        ast_cli(a-&amp;gt;fd, &amp;quot;- %-16.16s\n&amp;quot;, global_hikari_hgw[tmp_i]);&lt;br /&gt;
+                }&lt;br /&gt;
+        }&lt;br /&gt;
+&lt;br /&gt;
+        return CLI_SUCCESS;&lt;br /&gt;
+ }&lt;br /&gt;
&lt;br /&gt;
  /*! \brief Convert transfer mode to text string */&lt;br /&gt;
  static char *transfermode2str(enum transfermodes mode)&lt;br /&gt;
***************&lt;br /&gt;
*** 22102,22107 ****&lt;br /&gt;
--- 22136,22146 ----&lt;br /&gt;
        struct sip_auth *auth;  /* Realm authentication credential */&lt;br /&gt;
        struct sip_auth_container *credentials;&lt;br /&gt;
&lt;br /&gt;
+       /* Hikari-denwa HGW HACK */&lt;br /&gt;
+       char tmp_addr[20];&lt;br /&gt;
+       char tmp_uri[256];&lt;br /&gt;
+       int tmp_i;&lt;br /&gt;
+&lt;br /&gt;
        if (!ast_strlen_zero(p-&amp;gt;domain))&lt;br /&gt;
                snprintf(uri, sizeof(uri), &amp;quot;%s:%s&amp;quot;, p-&amp;gt;socket.type == AST_TRANSPORT_TLS ? &amp;quot;sips&amp;quot; : &amp;quot;sip&amp;quot;, p-&amp;gt;domain);&lt;br /&gt;
        else if (!ast_strlen_zero(p-&amp;gt;uri))&lt;br /&gt;
***************&lt;br /&gt;
*** 22109,22114 ****&lt;br /&gt;
--- 22148,22175 ----&lt;br /&gt;
        else&lt;br /&gt;
                snprintf(uri, sizeof(uri), &amp;quot;%s:%s@%s&amp;quot;, p-&amp;gt;socket.type == AST_TRANSPORT_TLS ? &amp;quot;sips&amp;quot; : &amp;quot;sip&amp;quot;, p-&amp;gt;username, ast_sockaddr_stringify_host_remote(&amp;amp;p-&amp;gt;sa));&lt;br /&gt;
&lt;br /&gt;
+       /* Hikari-denwa HGW HACK */&lt;br /&gt;
+       strcpy(tmp_addr, ast_sockaddr_stringify_host(&amp;amp;p-&amp;gt;sa));&lt;br /&gt;
+       /* ast_verbose(VERBOSE_PREFIX_3 &amp;quot;inet is  %s \n&amp;quot;, tmp_addr); */&lt;br /&gt;
+       for (tmp_i=0;tmp_i&amp;lt;global_hikari_hgw_cnt;tmp_i++){&lt;br /&gt;
+               if(strcmp(tmp_addr, global_hikari_hgw[tmp_i]) == 0){&lt;br /&gt;
+                       /* ast_verbose(VERBOSE_PREFIX_3 &amp;quot;Peer is Hikari-denwa HGW\n&amp;quot;); */&lt;br /&gt;
+                       if ((strcmp(uri, &amp;quot;domain&amp;quot;) == 0) || (strcmp(uri, &amp;quot;sip:domain&amp;quot;) == 0)) {&lt;br /&gt;
+                               strncpy(tmp_uri, p-&amp;gt;uri, sizeof(tmp_uri));&lt;br /&gt;
+                               switch (method) {&lt;br /&gt;
+                               case    SIP_REGISTER:&lt;br /&gt;
+                                       sprintf(uri, &amp;quot;sip:%s&amp;quot;,tmp_addr);&lt;br /&gt;
+                                       break;&lt;br /&gt;
+                               default:&lt;br /&gt;
+                                       *strchr(tmp_uri, &amp;#039;@&amp;#039;) = &amp;#039;\0&amp;#039;;&lt;br /&gt;
+                                       snprintf(uri, sizeof(uri), &amp;quot;%s@%s&amp;quot;,tmp_uri,tmp_addr);&lt;br /&gt;
+                                       break;&lt;br /&gt;
+                               }&lt;br /&gt;
+                       }&lt;br /&gt;
+               }&lt;br /&gt;
+       }&lt;br /&gt;
+       /* Hikari-denwa HGW HACK END */&lt;br /&gt;
+&lt;br /&gt;
        snprintf(cnonce, sizeof(cnonce), &amp;quot;%08lx&amp;quot;, (unsigned long)ast_random());&lt;br /&gt;
&lt;br /&gt;
        /* Check if we have peer credentials */&lt;br /&gt;
***************&lt;br /&gt;
*** 31321,31326 ****&lt;br /&gt;
--- 31382,31391 ----&lt;br /&gt;
&lt;br /&gt;
        sip_cfg.matchexternaddrlocally = DEFAULT_MATCHEXTERNADDRLOCALLY;&lt;br /&gt;
&lt;br /&gt;
+       /* Hikari-denwa HGW HACK */&lt;br /&gt;
+       memset(global_hikari_hgw, 0, sizeof(global_hikari_hgw));&lt;br /&gt;
+       global_hikari_hgw_cnt = 0;&lt;br /&gt;
+&lt;br /&gt;
        /* Copy the default jb config over global_jbconf */&lt;br /&gt;
        memcpy(&amp;amp;global_jbconf, &amp;amp;default_jbconf, sizeof(struct ast_jb_conf));&lt;br /&gt;
&lt;br /&gt;
***************&lt;br /&gt;
*** 31795,31800 ****&lt;br /&gt;
--- 31860,31870 ----&lt;br /&gt;
                        }&lt;br /&gt;
                } else if (!strcasecmp(v-&amp;gt;name, &amp;quot;matchexternaddrlocally&amp;quot;) || !strcasecmp(v-&amp;gt;name, &amp;quot;matchexterniplocally&amp;quot;)) {&lt;br /&gt;
                        sip_cfg.matchexternaddrlocally = ast_true(v-&amp;gt;value);&lt;br /&gt;
+               } else if (!strcasecmp(v-&amp;gt;name, &amp;quot;hikarihgw&amp;quot;)) { /*Hikari-denwa HGW HACK*/&lt;br /&gt;
+                       if (global_hikari_hgw_cnt &amp;lt; MAX_HGWS) {&lt;br /&gt;
+                               ast_copy_string(global_hikari_hgw[global_hikari_hgw_cnt], v-&amp;gt;value, sizeof(global_hikari_hgw));&lt;br /&gt;
+                       global_hikari_hgw_cnt++;&lt;br /&gt;
+                       }&lt;br /&gt;
                } else if (!strcasecmp(v-&amp;gt;name, &amp;quot;session-timers&amp;quot;)) {&lt;br /&gt;
                        int i = (int) str2stmode(v-&amp;gt;value);&lt;br /&gt;
                        if (i &amp;lt; 0) {&lt;br /&gt;
***************&lt;br /&gt;
*** 33240,33245 ****&lt;br /&gt;
--- 33310,33316 ----&lt;br /&gt;
        AST_CLI_DEFINE(sip_show_registry, &amp;quot;List SIP registration status&amp;quot;),&lt;br /&gt;
        AST_CLI_DEFINE(sip_unregister, &amp;quot;Unregister (force expiration) a SIP peer from the registry&amp;quot;),&lt;br /&gt;
        AST_CLI_DEFINE(sip_show_settings, &amp;quot;Show SIP global settings&amp;quot;),&lt;br /&gt;
+       AST_CLI_DEFINE(sip_show_hikarihgw, &amp;quot;Show Hikari-denwa HGW settings&amp;quot;),&lt;br /&gt;
        AST_CLI_DEFINE(sip_show_mwi, &amp;quot;Show MWI subscriptions&amp;quot;),&lt;br /&gt;
        AST_CLI_DEFINE(sip_cli_notify, &amp;quot;Send a notify packet to a SIP peer&amp;quot;),&lt;br /&gt;
        AST_CLI_DEFINE(sip_show_channel, &amp;quot;Show detailed SIP channel info&amp;quot;),&lt;br /&gt;
*** channels/sip/include/sip.h.org      2014-07-25 02:47:29.000000000 +0900&lt;br /&gt;
--- channels/sip/include/sip.h  2014-12-02 22:34:05.931283654 +0900&lt;br /&gt;
***************&lt;br /&gt;
*** 109,114 ****&lt;br /&gt;
--- 109,117 ----&lt;br /&gt;
&lt;br /&gt;
  #define INITIAL_CSEQ              101    /*!&amp;lt; Our initial sip sequence number */&lt;br /&gt;
&lt;br /&gt;
+ /* Hikari-denwa HGW HACK */&lt;br /&gt;
+ #define MAX_HGWS                  4       /* Number of HGWs */&lt;br /&gt;
+&lt;br /&gt;
  #define DEFAULT_MAX_SE            1800   /*!&amp;lt; Session-Timer Default Session-Expires period (RFC 4028) */&lt;br /&gt;
  #define DEFAULT_MIN_SE            90     /*!&amp;lt; Session-Timer Default Min-SE period (RFC 4028) */&lt;br /&gt;
&amp;lt;/nopre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Takahashi</name></author>
	</entry>
</feed>