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 "bubbling-up= " 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 "bug" in Kannel: all connectors should use the same naming = strategy. I don't know how likely is the scenario of having multi-proto= col 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 righ= t answer is to make the naming convention consistent so DLR'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 <<a href=3D"mailto:franck.lamasuta@vo= dafone.com">[email protected]</a>> 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->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->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 <<a href=3D"mailto:alejandro.guerri= [email protected]" target=3D"_blank">[email protected]</a>> <br> <b>Sent:</b> mercredi 26 juin 2019 00:27<br> <b>To:</b> Lamasuta, Franck, Vodafone Automotive <<a href=3D"mailto:fran= [email protected]" target=3D"_blank">[email protected]</a= >><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'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'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 <<a href=3D"mailto:[email protected]" targ= et=3D"_blank">[email protected]</a>> 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:"Courier New";c= olor:rgb(68,114,196)">#</span><u></u><u></u></p> <p class=3D"MsoNormal"><span style=3D"font-family:"Courier New";c= olor:rgb(68,114,196)"># Primary server</span><u></u><u></u></p> <p class=3D"MsoNormal"><span style=3D"font-family:"Courier New";c= olor:rgb(68,114,196)">#</span><u></u><u></u></p> <p class=3D"MsoNormal"><span style=3D"font-family:"Courier New";c= olor:rgb(68,114,196)">group =3D smsc</span><u></u><u></u></p> <p class=3D"MsoNormal"><span style=3D"font-family:"Courier New";c= olor:rgb(68,114,196)">smsc =3D cimd2</span><u></u><u></u></p> <p class=3D"MsoNormal"><span style=3D"font-family:"Courier New";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:"Courier New";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:"Courier New";c= olor:rgb(68,114,196)">port =3D 6001</span><u></u><u></u></p> <p class=3D"MsoNormal"><span style=3D"font-family:"Courier New";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:"Courier New";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:"Courier New";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:"Courier New";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:"Courier New";c= olor:rgb(68,114,196)">=C2=A0</span><u></u><u></u></p> <p class=3D"MsoNormal"><span style=3D"font-family:"Courier New";c= olor:rgb(68,114,196)">#</span><u></u><u></u></p> <p class=3D"MsoNormal"><span style=3D"font-family:"Courier New";c= olor:rgb(68,114,196)"># Secondary server</span><u></u><u></u></p> <p class=3D"MsoNormal"><span style=3D"font-family:"Courier New";c= olor:rgb(68,114,196)">#</span><u></u><u></u></p> <p class=3D"MsoNormal"><span style=3D"font-family:"Courier New";c= olor:rgb(68,114,196)">group =3D smsc</span><u></u><u></u></p> <p class=3D"MsoNormal"><span style=3D"font-family:"Courier New";c= olor:rgb(68,114,196)">smsc =3D cimd2</span><u></u><u></u></p> <p class=3D"MsoNormal"><span style=3D"font-family:"Courier New";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:"Courier New";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:"Courier New";c= olor:rgb(68,114,196)">port =3D 6002</span><u></u><u></u></p> <p class=3D"MsoNormal"><span style=3D"font-family:"Courier New";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:"Courier New";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:"Courier New";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--