Uploaded image for project: 'AdMaxLocal'
  1. AdMaxLocal
  2. AML-3178

Call Extension validation is failing Toll Free 844 area code

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: Fuji, Matador
    • Fix Version/s: Rushmore
    • Component/s: None
    • Labels:
      None
    • Environment:

      Matador Production

    • Sprint:
      Sprint 1, Sprint 6, Sprint 7

      Description

      The call extension validation is marking the 844 toll free extension as invalid. Number 844-667-9545 is failing for a customer.

      FCC note on the new extension: http://www.fcc.gov/document/letter-authorizing-opening-844-toll-free-code-dec-7-2013

      We would need to update the call validation library to the latest version which will include this new extension or dial down our validation restrictions to not check for valid number but just check for valid syntax.

      Tomcat log stack trace:
      2014-10-22 17:57:24,753-1283439165 [http-8080-37] INFO org.apache.cxf.interceptor.LoggingInInterceptor [] - Inbound Message
      ----------------------------
      ID: 1611
      Address: http://127.0.0.1:8080/sapi/rest/orders
      Encoding: UTF-8
      Http-Method: POST
      Content-Type: application/json; charset=utf-8
      Headers:

      {Accept=[application/json, text/plain], connection=[Keep-Alive], content-encoding=[UTF-8], Content-Length=[1639], content-type=[application/json; charset=utf-8], host=[127.0.0.1:8080], user-agent=[Apache-HttpClient/4.2.1 (java 1.5)], x-tsa-authenticate=[C25ND5EHIQTORMDTVHADUTNBBZ6VM25UB6TXR5P2MHQ7XD3LMDEIS5JNR5UUX5ZLQXDAED7UY2YWKRJWMNNKZRCBCZCQJMDC572LCMXJ5A6I4L2XVZBQRZXJCGR2AHZSOEBH3YFOU5HSRRN5UZTZBCJ3ZYVC6IEA6IAGH6S6KNE537GNNPCEG57GRSXNXROEOOIBEPQ5FOXPC4CV6K337DZCQDDAVIUSXGTKMTPTJPUUC3GXYCF3LXLRUDOWN64KZIHJBVNBD2NEWHYNJKQ3PRNIIWA4JD6WZ272JIROVZ4E6JO6IFMZDVSJFTDUK2WELOMQIUC27W5J2DUGTEAAB6R3YZ4TOMMGSV5Y4MRRDHICGSXJ7HNMF26BJ3II3TRZJ2D5XX2FGJDM2QUV3IIBYEJQ6HP2GS2RQMSVBSC4TTFRAWMHJ3MXIVVACQBHMMUC35PLDVANLGXXDW7ZRBVZ27CUB75TDM6T7FAZVIHXIPBQZKNQQNHYXUNTW4QM4BR5KDRV7RNZ7IBMLDTX3BKO5TVBKBAPAXRXD2SNQ6LERFDLN4OJTKWFYQTK7GTC4WBBP4Z4DTKJVQXFGZWDR7OT7XDRKFEECNR3SAIEX64MG45K5YD3OPEL6VNELA4X24R24G4BQCDNCD2JQQQ2BRRICA74XIAOJXXV4VDB3SDGEUK7PPU2O5QABFZP5HQUTONDSS5XZ7RTFJSLQKYU3BF3XFPKGIYIKCJFF3RMPCVWH7U3NYW65WXCOCBCZPLMDJIIOJBQIBDR4KLEH6YZHEURVHKWWHHE64T6JJDJMPRX6BSSMQPFDTECOC742ZNEP2TFBJGJMVGZQMGI6KXHHJTAYULB3MZ3RWFJLPBPRDY7BCXTJ2G6Y7BA33J6WQGVSXWBR3I6UWWEMNFBNIEIQLCFTYIJGIUJFYETGYLXVZYXJ4WEMMDSTJYXJ4LY5DBSZWP4FFXJX4RHB3Z7UAHM3UXATXF2VLUAEDLTV4XIPC4MRKU7MW437YYZ2QCZTG74ZSC6FSTN5MZ5CIXXP2KQBWM37FHXJSNQC7MTCCTCTDGZ3KWGX4SZAY4DIKBHPBK2JGTQVJFZVUY2GXFSKGT7UNFMZY4E3TGUNQ5NTPQAJSY5GHASOMVV3YFGN63TA6PUVBQ7LSNWJG76CER3O4PNP5WLPIS5WGHHYQSXUVKJ5QHIJ2ZLYLPKYDO5SWKQQ2N27BYVJAKKPKFMW5E7AOYBX3TKDTRPCV6NXCGCT77FZAWP4JA3JQVOMR5J65JPWPL7BIAPSFGQUV5L6HQOLKC7EXQHNC5GNZ7A4URNQLMDXS55PA44SIUJYGIQ3ITI5TH34VBTRY4LSTQFQ6RSMYHX4JKK2SUUG25ZFNVVD4NH7JSEWBE4HHZ7RMGFKWNLLNVYRY45ZE5MXGDJEAHE4UY3LIBD7VX7ZVDZUL7NIKF4FP4LME2SLNJ5Z5QX66K5IK2HDLTHDQ3SYJ5GPNWDFQJKOPMXDT7A3NMAFQXPJSSR43OLIATMMFZJB4DS5AD5ZHT6SFKM46USVUC4WJGMX5JSE4ROZL35NGQMENTEFWDGCT46SR3DBRQVU6IVODFQIRMENF3CX4PG4N2R3NP27PQUWRHRV25QV5VKPEX7E3JV55UV53IEBK346RMQ====]}

      Payload: {"campaignTargets":[{"status":"VALID","businessArea":

      {"id":"10032","title":"Air Conditioning Repair","status":"ACTIVE","language":"en","parentId":"8","leaf":true,"type":"BusinessArea"}

      ,"location":

      {"id":"55","title":"Arizona","status":"ACTIVE","language":"en"}

      ,"localeName":"en_US","campaignAds":[

      {"id":"26b551ec-cb6a-4068-8443-ba48e54c8281","disabled":false,"headline":"Affordable A/C Repair","first":"Efficient Air Conditioning Repair.","second":"See Our Range Of Services Now!"}

      ,{"id":"54a9f045-4c12-409f-92cd-119dfd4b2d64","disabled":false,"headline":"

      {KeyWord:Affordable A/C Repair}

      ","first":"See Our Range Of Services Now!","second":"Efficient Air Conditioning Repair."},{"id":"6d4b3f7e-c125-4104-9e17-515f96deb7b3","disabled":false,"headline":"

      {KeyWord:Effective A/C Repair}

      ","first":"We\u0027ve Got Cooling Covered.","second":"Easy Air Conditioning Repair."},

      {"id":"f4f1574a-118e-487c-abc4-445232ab65f1","disabled":false,"headline":"Effective A/C Repair","first":"Easy Air Conditioning Repair.","second":"We\u0027ve Got Cooling Covered."}

      ],"keywordListId":"435595f0-bb52-11e3-85a3-bc764e056e8c"}],"distributionBudgets":[

      {"service":"GOOGLE","budget":1.0,"markupBudget":1.0,"markupMultiplier":0.0}

      ],"billingInfoCaptured":true,"budgetOverride":false,"campaignDataList":[{"type":"phoneNumber","attributes":{"countryCode":"US","number":"18446679545","isEnabled":"true"}}],"name":"","comment":"","semLandingPageURL":"http://www.merchantsite.com/","state":"QUOTE","associatedMerchant":

      {"id":"77a7b453-946f-444e-ac4e-ab0abe0f2e18","name":"0test1","customerId":"0test1"}

      ,"currencyCode":"USD","timeZone":"America/New_York","countryCode":"US"}
      --------------------------------------
      2014-10-22 17:57:24,784-1283439196 [http-8080-37] WARN org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper [timezone=Etc/UTC, principalId=8e102035-c74a-4115-af7e-0bc3a060036f, requestId=a2eb6cb4-2b4e-4e34-b755-f3bbd1c8cfd4, locale=en_US, authToken=C25ND5EHIQTORMDTVHADUTNBBZ6VM25UB6TXR5P2MHQ7XD3LMDEIS5JNR5UUX5ZLQXDAED7UY2YWKRJWMNNKZRCBCZCQJMDC572LCMXJ5A6I4L2XVZBQRZXJCGR2AHZSOEBH3YFOU5HSRRN5UZTZBCJ3ZYVC6IEA6IAGH6S6KNE537GNNPCEG57GRSXNXROEOOIBEPQ5FOXPC4CV6K337DZCQDDAVIUSXGTKMTPTJPUUC3GXYCF3LXLRUDOWN64KZIHJBVNBD2NEWHYNJKQ3PRNIIWA4JD6WZ272JIROVZ4E6JO6IFMZDVSJFTDUK2WELOMQIUC27W5J2DUGTEAAB6R3YZ4TOMMGSV5Y4MRRDHICGSXJ7HNMF26BJ3II3TRZJ2D5XX2FGJDM2QUV3IIBYEJQ6HP2GS2RQMSVBSC4TTFRAWMHJ3MXIVVACQBHMMUC35PLDVANLGXXDW7ZRBVZ27CUB75TDM6T7FAZVIHXIPBQZKNQQNHYXUNTW4QM4BR5KDRV7RNZ7IBMLDTX3BKO5TVBKBAPAXRXD2SNQ6LERFDLN4OJTKWFYQTK7GTC4WBBP4Z4DTKJVQXFGZWDR7OT7XDRKFEECNR3SAIEX64MG45K5YD3OPEL6VNELA4X24R24G4BQCDNCD2JQQQ2BRRICA74XIAOJXXV4VDB3SDGEUK7PPU2O5QABFZP5HQUTONDSS5XZ7RTFJSLQKYU3BF3XFPKGIYIKCJFF3RMPCVWH7U3NYW65WXCOCBCZPLMDJIIOJBQIBDR4KLEH6YZHEURVHKWWHHE64T6JJDJMPRX6BSSMQPFDTECOC742ZNEP2TFBJGJMVGZQMGI6KXHHJTAYULB3MZ3RWFJLPBPRDY7BCXTJ2G6Y7BA33J6WQGVSXWBR3I6UWWEMNFBNIEIQLCFTYIJGIUJFYETGYLXVZYXJ4WEMMDSTJYXJ4LY5DBSZWP4FFXJX4RHB3Z7UAHM3UXATXF2VLUAEDLTV4XIPC4MRKU7MW437YYZ2QCZTG74ZSC6FSTN5MZ5CIXXP2KQBWM37FHXJSNQC7MTCCTCTDGZ3KWGX4SZAY4DIKBHPBK2JGTQVJFZVUY2GXFSKGT7UNFMZY4E3TGUNQ5NTPQAJSY5GHASOMVV3YFGN63TA6PUVBQ7LSNWJG76CER3O4PNP5WLPIS5WGHHYQSXUVKJ5QHIJ2ZLYLPKYDO5SWKQQ2N27BYVJAKKPKFMW5E7AOYBX3TKDTRPCV6NXCGCT77FZAWP4JA3JQVOMR5J65JPWPL7BIAPSFGQUV5L6HQOLKC7EXQHNC5GNZ7A4URNQLMDXS55PA44SIUJYGIQ3ITI5TH34VBTRY4LSTQFQ6RSMYHX4JKK2SUUG25ZFNVVD4NH7JSEWBE4HHZ7RMGFKWNLLNVYRY45ZE5MXGDJEAHE4UY3LIBD7VX7ZVDZUL7NIKF4FP4LME2SLNJ5Z5QX66K5IK2HDLTHDQ3SYJ5GPNWDFQJKOPMXDT7A3NMAFQXPJSSR43OLIATMMFZJB4DS5AD5ZHT6SFKM46USVUC4WJGMX5JSE4ROZL35NGQMENTEFWDGCT46SR3DBRQVU6IVODFQIRMENF3CX4PG4N2R3NP27PQUWRHRV25QV5VKPEX7E3JV55UV53IEBK346RMQ====, hostname=127.0.0.1, ipAddress=127.0.0.1] - javax.ws.rs.WebApplicationException
      at com.thesearchagency.sapi.services.order.OrderService.validate(OrderService.java:593)
      at com.thesearchagency.sapi.services.order.OrderService.createOrder(OrderService.java:627)
      at com.thesearchagency.sapi.services.order.OrderService.createOrder(OrderService.java:254)
      at sun.reflect.GeneratedMethodAccessor700.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:622)
      at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:319)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
      at com.sun.proxy.$Proxy224.createOrder(Unknown Source)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:622)
      at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:180)
      at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96)
      at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:198)
      at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:100)
      at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)
      at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:94)
      at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
      at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
      at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:239)
      at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:223)
      at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:203)
      at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:137)
      at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:158)
      at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:243)
      at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:163)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
      at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:219)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
      at java.lang.Thread.run(Thread.java:701)

      2014-10-22 17:57:24,786-1283439198 [http-8080-37] INFO org.apache.cxf.interceptor.LoggingOutInterceptor [] - Outbound Message
      ---------------------------
      ID: 1611
      Response-Code: 400
      Content-Type: application/json;charset=UTF-8;type=tsa-service-error;version=2.6.2
      Headers:

      {Content-Type=[application/json;charset=UTF-8;type=tsa-service-error;version=2.6.2], Date=[Wed, 22 Oct 2014 17:57:24 GMT], X-AML-API-ID=[a2eb6cb4-2b4e-4e34-b755-f3bbd1c8cfd4], Expires=[-1], Cache-Control=[no-cache], Pragma=[no-cache]}

      Payload: {"code":"INVALID_DATA","message":"Invalid order!","details":[

      {"code":"InvalidCallExtension","field":"campaignDataList[0]","message":"campaignDataList[0] is not a valid call extension"}

      ,{"code":"InvalidPhone","field":"campaignDataList[0].number","message":"number

      {com.thesearchagency.constraints.phone}

      "}]}

      There is a bug related to validation that exists on production. Run this command on aml10 to see the output. You can also see it in the above line "message":"number com.thesearchagency.constraints.phone}" should read "number is not a valid phone number"

      grep "com.thesearchagency.constraints.phone" /var/log/tomcat6/aml.log
      

      The fixed version displays the correct error message in the response: "message":"number is not a valid phone number"

        Attachments

        There are no Sub-Tasks for this issue.

          Activity

            People

            • Assignee:
              sanjaykumar.biswal Sanjay Kumar Biswal
              Reporter:
              jeff.brown Jeff Brown (Inactive)
            • Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: