Re: [PATCH] SMSC cluster

Alejandro Guerrieri <[email protected]> Wed, 26 Jun 2019 09:13:21 -0400
Newsgroups gmane.comp.mobile.kannel.devel
Message-ID <CAG8-fBms_9LAzmX4Nq_+y880G1zuiDHtA_RKEmvvp49UNd2=uQ@mail.gmail.com>
--000000000000f09163058c39cf96
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Franck,

Thank you for clarifying.

Regarding SMPP, you are using your application to indirectly diagnose
problem with your binds. Kannel has a status endpoint that you can use to
monitor the bind status directly instead of "bubbling-up" the problem to
your application layer.

You have a point on CIMD2, though iMHO that is a "bug" in Kannel: all
connectors should use the same naming strategy. I don't know how likely is
the scenario of having multi-protocol binds sharing SMS traffic, but in
Kannel's current state it is the only case where this patch would make a
difference. In my opinion, the right answer is to make the naming
convention consistent so DLR's can be resolved across different protocols.

Regards,

Alejandro

On Wed, Jun 26, 2019 at 4:11 AM Lamasuta, Franck, Vodafone Automotive <
[email protected]> wrote:

> Hi Alejandro,
>
>
>
> I know we could use identical smsc-ids but=E2=80=A6
>
>
>
> 1) It does not work for CIMD2 because dlr_add() and dlr_find() are called
> with conn->name which is built with the IP and port.
>
>
>
> 2) It could work with SMPP (because dlr_add() and dlr_find() are called
> with conn->id) but=E2=80=A6
> When a MO-SMS is received, the smsc-id is assigned to the message and
> forwarded to our back-end by smsbox.
> We use this id to monitor the incoming traffic on each bind and detect
> issues (e.g. when the MO-SMS rate is below a threshold).
>
> With identical smsc-ids, we could have an issue on one of the binds (with
> the bind still up) and not be able to detect it. Therefore we do prefer t=
o
> have different smsc-ids.
>
> The patch only uses smsc-username which is (AFAIK) always the same with
> multiple binds.
>
> It is more flexible in my opinion.
>
>
>
> Regards,
>
> Franck
>
>
>
>
>
> *From:* Alejandro Guerrieri <[email protected]>
> *Sent:* mercredi 26 juin 2019 00:27
> *To:* Lamasuta, Franck, Vodafone Automotive <[email protected]=
>
> *Cc:* [email protected]
> *Subject:* Re: [PATCH] SMSC cluster
>
>
>
> I'm curious why do you even need this patch? You could use the same
> smsc-id on both and assign different smsc-admin-id values to manage each
> bind separately (e.g. start/stop). If by any reason you'd want to send ov=
er
> a specific bind, you could use different allowed-smsc-id's as well.
>
>
>
> Regards,
>
>
>
> Alejandro
>
>
>
> On Tue, Jun 25, 2019 at 12:20 PM Lamasuta, Franck, Vodafone Automotive <
> [email protected]> wrote:
>
> Hi list,
>
>
>
> We have implemented many patches along the way and I can finally take som=
e
> time to submit them.
> They are running on our staging and production platforms since years for
> the oldest ones.
>
> I will submit them one by one in the next days/weeks.
>
> Let=E2=80=99s start with the first one=E2=80=A6   J
>
>
>
> This patch allows Kannel to retrieve a pending DLRs in its database when =
2
> (or more) SMSC binds are established (with different IPs and/or ports).
>
> It is required when a MT-SMS is submitted to SMSC A and its DLR is sent
> back by SMSC B.
>
> Done for CIMD2 and SMPP.
>
>
>
> Example of configuration where the patch is required:
>
>
>
> #
>
> # Primary server
>
> #
>
> group =3D smsc
>
> smsc =3D cimd2
>
> smsc-id =3D SMSC-A
>
> host =3D 123.1.2.3
>
> port =3D 6001
>
> smsc-username =3D user
>
> smsc-password =3D xxxxxxxx
>
> allowed-smsc-id =3D id1
>
> preferred-smsc-id =3D id1
>
>
>
> #
>
> # Secondary server
>
> #
>
> group =3D smsc
>
> smsc =3D cimd2
>
> smsc-id =3D SMSC-B
>
> host =3D 123.1.2.3
>
> port =3D 6002
>
> smsc-username =3D user
>
> smsc-password =3D xxxxxxxx
>
> allowed-smsc-id =3D id1
>
>
>
>
>
> Regards,
>
> Franck
>
>

--000000000000f09163058c39cf96
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Franck,<div><br></div><div>Thank you for clarifying.</div>=
<div><br></div><div>Regarding SMPP, you are using your application to indir=
ectly diagnose problem with your binds. Kannel has a status endpoint that y=
ou can use to monitor the bind status directly instead of &quot;bubbling-up=
&quot; the problem to your application layer.</div><div><div><br class=3D"g=
mail-Apple-interchange-newline">You have a point on CIMD2, though iMHO that=
 is a &quot;bug&quot; in Kannel: all connectors should use the same naming =
strategy. I don&#39;t know how likely is the scenario of having multi-proto=
col binds sharing SMS traffic, but in Kannel&#39;s current state it is the =
only case where this patch would make a difference. In my opinion, the righ=
t answer is to make the naming convention consistent so DLR&#39;s can be re=
solved across different protocols.</div><div><br></div></div><div>Regards,<=
/div><div><br></div><div>Alejandro</div></div><br><div class=3D"gmail_quote=
"><div dir=3D"ltr" class=3D"gmail_attr">On Wed, Jun 26, 2019 at 4:11 AM Lam=
asuta, Franck, Vodafone Automotive &lt;<a href=3D"mailto:franck.lamasuta@vo=
dafone.com">[email protected]</a>&gt; wrote:<br></div><blockquot=
e class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px s=
olid rgb(204,204,204);padding-left:1ex">





<div lang=3D"EN-US">
<div class=3D"gmail-m_-4211829121702154947WordSection1">
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif;color:rgb(31,73,125)">Hi Alejandro,<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif;color:rgb(31,73,125)"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif;color:rgb(31,73,125)">I know we could use identical smsc-ids but=
=E2=80=A6<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif;color:rgb(31,73,125)"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif;color:rgb(31,73,125)">1) It does not work for CIMD2 because dlr_ad=
d() and dlr_find() are called with conn-&gt;name which is built with the IP=
 and port.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif;color:rgb(31,73,125)"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif;color:rgb(31,73,125)">2) It could work with SMPP (because dlr_add(=
) and dlr_find() are called with conn-&gt;id) but=E2=80=A6<br>
When a MO-SMS is received, the smsc-id is assigned to the message and forwa=
rded to our back-end by smsbox.<br>
We use this id to monitor the incoming traffic on each bind and detect issu=
es (e.g. when the MO-SMS rate is below a threshold).<u></u><u></u></span></=
p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif;color:rgb(31,73,125)">With identical smsc-ids, we could have an is=
sue on one of the binds (with the bind still up) and not be able to detect =
it. Therefore we do prefer to have different
 smsc-ids.<br>
<br>
<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif;color:rgb(31,73,125)">The patch only uses smsc-username which is (=
AFAIK) always the same with multiple binds.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif;color:rgb(31,73,125)">It is more flexible in my opinion.<u></u><u>=
</u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif;color:rgb(31,73,125)"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif;color:rgb(31,73,125)">Regards,<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif;color:rgb(31,73,125)">Franck<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif;color:rgb(31,73,125)"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<p class=3D"MsoNormal"><b><span style=3D"font-size:11pt;font-family:Calibri=
,sans-serif">From:</span></b><span style=3D"font-size:11pt;font-family:Cali=
bri,sans-serif"> Alejandro Guerrieri &lt;<a href=3D"mailto:alejandro.guerri=
[email protected]" target=3D"_blank">[email protected]</a>&gt;
<br>
<b>Sent:</b> mercredi 26 juin 2019 00:27<br>
<b>To:</b> Lamasuta, Franck, Vodafone Automotive &lt;<a href=3D"mailto:fran=
[email protected]" target=3D"_blank">[email protected]</a=
>&gt;<br>
<b>Cc:</b> <a href=3D"mailto:[email protected]" target=3D"_blank">devel@kann=
el.org</a><br>
<b>Subject:</b> Re: [PATCH] SMSC cluster<u></u><u></u></span></p>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<p class=3D"MsoNormal">I&#39;m curious why do you even need this patch? You=
 could use the same smsc-id on both and assign different smsc-admin-id valu=
es to manage each bind separately (e.g. start/stop). If by any reason you&#=
39;d want to send over a specific bind, you
 could use different allowed-smsc-id&#39;s as well.<u></u><u></u></p>
<div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Regards,<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Alejandro<u></u><u></u></p>
</div>
</div>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<div>
<p class=3D"MsoNormal">On Tue, Jun 25, 2019 at 12:20 PM Lamasuta, Franck, V=
odafone Automotive &lt;<a href=3D"mailto:[email protected]" targ=
et=3D"_blank">[email protected]</a>&gt; wrote:<u></u><u></u></p>
</div>
<blockquote style=3D"border-top:none;border-right:none;border-bottom:none;b=
order-left:1pt solid rgb(204,204,204);padding:0cm 0cm 0cm 6pt;margin-left:4=
.8pt;margin-right:0cm">
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"FR">Hi list,</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span lang=3D"FR">=C2=A0</span><u></u><u></u></p>
<p class=3D"MsoNormal">We have implemented many patches along the way and I=
 can finally take some time to submit them.<br>
They are running on our staging and production platforms since years for th=
e oldest ones.<u></u><u></u></p>
<p class=3D"MsoNormal">I will submit them one by one in the next days/weeks=
.<u></u><u></u></p>
<p class=3D"MsoNormal">Let=E2=80=99s start with the first one=E2=80=A6=C2=
=A0=C2=A0
<span style=3D"font-family:Wingdings">J</span><u></u><u></u></p>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
<p class=3D"MsoNormal">This patch allows Kannel to retrieve a pending DLRs =
in its database when 2 (or more) SMSC binds are established (with different=
 IPs and/or ports).<u></u><u></u></p>
<p class=3D"MsoNormal">It is required when a MT-SMS is submitted to SMSC A =
and its DLR is sent back by SMSC B.<u></u><u></u></p>
<p class=3D"MsoNormal">Done for CIMD2 and SMPP.<u></u><u></u></p>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
<p class=3D"MsoNormal">Example of configuration where the patch is required=
:<u></u><u></u></p>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:rgb(68,114,196)">#</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:rgb(68,114,196)"># Primary server</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:rgb(68,114,196)">#</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:rgb(68,114,196)">group =3D smsc</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:rgb(68,114,196)">smsc =3D cimd2</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:rgb(68,114,196)">smsc-id =3D SMSC-A</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:rgb(68,114,196)">host =3D 123.1.2.3</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:rgb(68,114,196)">port =3D 6001</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:rgb(68,114,196)">smsc-username =3D user</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:rgb(68,114,196)">smsc-password =3D xxxxxxxx</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:rgb(68,114,196)">allowed-smsc-id =3D id1</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:rgb(68,114,196)">preferred-smsc-id =3D id1</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:rgb(68,114,196)">=C2=A0</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:rgb(68,114,196)">#</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:rgb(68,114,196)"># Secondary server</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:rgb(68,114,196)">#</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:rgb(68,114,196)">group =3D smsc</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:rgb(68,114,196)">smsc =3D cimd2</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:rgb(68,114,196)">smsc-id =3D SMSC-B</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:rgb(68,114,196)">host =3D 123.1.2.3</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:rgb(68,114,196)">port =3D 6002</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:rgb(68,114,196)">smsc-username =3D user</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:rgb(68,114,196)">smsc-password =3D xxxxxxxx</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:rgb(68,114,196)">allowed-smsc-id =3D id1</span><u></u><u></u></p>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
<p class=3D"MsoNormal">Regards,<u></u><u></u></p>
<p class=3D"MsoNormal">Franck<u></u><u></u></p>
</div>
</div>
</blockquote>
</div>
</div>
</div>

</blockquote></div>

--000000000000f09163058c39cf96--